一、go语言与python

1. go语言

  1. go语言语法固定,没有那么多花里胡哨的写法,语法也简单。一共25个关键字

  2. 本身支持高并发,数据计算,做后端天然有优势。(云计算,区块链,网络服务行业,新兴的公司基本都用go语言)

2. python

  1. 开发效率高,所以周期短
  2. 爬虫加数据分析
  3. 人工智能

二、变量相关

1. go语言的基本语法

  • package 后面跟的是包名,用来声明当前这个文件是属于哪个包。,如果是属于main包,则在执行这个文件后,会把该文件打包成一个.exe程序。

  • import 包名 用来导入的包

  • func main()是整个程序的入口,没有参数。

  • 在函数外部只能放置标识符(即 变量,常量,函数,类型)的声明

2. 标识符和关键字

  • 标识符就是python中的变量名, 由字母数字和_(下划线)组成,并且只能以字母和_开头 。

  • 关键字就是有各种特定作用的名字。如python中的if def return等等。go语言里有25个关键字,并且还有37个保留字。我们不建议用关键字或保留字当做变量名即标识符。

3. 变量声明

  • 类似前端JavaScript的变量声明方式

(1)声明变量时未指定初始值

格式1: var 变量名 变量类型

行尾无需分号

例如:
var name string
var age int
var isOk bool 格式2:批量声明
var (
a string
b int
c bool
d float32
)
  • 已经声明的变量若未对其进行初始化,他们都会有一个默认值

    • 数字类型是0,字符串是空字符串, 布尔型变量默认为false。 切片、函数、指针变量的默认为nil

(2)声明变量时指定初始值

  • 格式:
    var 变量名 类型 = 表达式 例子:
    var name string = "Q1mi"
    var age int = 18 一次初始化多个变量:
    var name, age = "Q1mi", 20

(3)声明变量时不指定类型

  • 声明变量时不指定类型,则这个时候编译器会根据等号右边的值来推导变量的类型完成初始化

    var name = "Q1mi"
    var age = 18

(4)短变量声明

  • 在函数内部,可以使用更简略的 := 方式声明并初始化变量

    package main
    
    import (
    "fmt"
    )
    // 全局变量m
    var m = 100 func main() {
    n := 10
    m := 200 // 此处声明局部变量m
    fmt.Println(m, n)
    }

(5)匿名变量

  • 类似python中的解压缩时,用_代替不需要的值。 匿名变量用一个下划线_表示

    func foo() (int, string) {
    return 10, "Q1mi"
    }
    func main() {
    x, _ := foo()
    _, y := foo()
    fmt.Println("x=", x)
    fmt.Println("y=", y)
    }
    • 匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。 (在Lua等编程语言里,匿名变量也被叫做哑元变量。

(6)注意小结

  1. 函数外的每个语句都必须以关键字开始(var、const、func等)
  2. :=不能使用在函数外。
  3. _多用于占位,表示忽略值

三、常量

  • 什么是常量

  • 常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值

  • 声明常量只是把var换成了const,**常量在定义的时候必须赋值 **

1.普通声明常量方式:
const pi = 3.1415
const e = 2.7182 2.批量声明不同值的常量方式:
const (
pi = 3.1415
e = 2.7182
) 3.批量声明同一值的常量:const同时声明多个常量时,如果省略了值则表示和上面一行的值相同
const (
n1 = 100
n2
n3
)

四、iota

  • 什么是iota

    • iota是go语言的常量计数器,只能在常量的表达式中使用
    • iota在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota计数一次
    • iota**可理解为const语句块中的行索引 **
  • 5种实例:

    1. 普通例子
    const (
    n1 = iota //0
    n2 //1
    n3 //2
    n4 //3
    ) 2. 使用_跳过某些值
    const (
    n1 = iota //0
    n2 //1
    _
    n4 //3
    ) 3.iota声明中间插队
    const (
    n1 = iota //0
    n2 = 100 //1
    n3 = iota //2
    n4 //3
    )
    const n5 = iota //0 4. 定义数量级
    // 这里的<<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8
    const (
    _ = iota
    KB = 1 &lt;&lt; (10 * iota)
    MB = 1 &lt;&lt; (10 * iota)
    GB = 1 &lt;&lt; (10 * iota)
    TB = 1 &lt;&lt; (10 * iota)
    PB = 1 &lt;&lt; (10 * iota)
    ) 5. 多个iota定义在一行
    const (
    a, b = iota + 1, iota + 2 //1,2
    c, d //2,3
    e, f //3,4
    )

golang初识 和 变量,常量,iota的更多相关文章

  1. GO中标识符,标识符,变量,常量,iota

    参考:https://www.cnblogs.com/nickchen121/p/11517455.html 一.标识符与关键字 1.标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变 ...

  2. golang语法学习(一):变量,常量以及数据类型

    学习一门新的语言肯定是要从他的主要的语法開始,语法构成了整个程序设计的基础,从语法中我们也能够看到这门语言的一些特性.可是话说回来.语法这东西,不同的语言大同小异,所以这也对语法的记忆造成了一定的难度 ...

  3. [golang note] 变量常量

    变量 • 变量声明 √ golang变量声明的关键字为var. √ golang变量声明时类型信息放置在变量名之后. ▶ 单个变量声明 ▪ 语法如下 var name type ▪ 示例如下 var ...

  4. iOS开发Swift篇(01) 变量&常量&元组

    iOS开发Swift篇(01) 变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对于14年 ...

  5. C#基础总结之一变量常量-if嵌套语句-witch结构-类型转换

    //Console.WriteLine("Hello World"); //打印显示 //Console.ReadLine(); //接收输入的值 //Console.ReadKe ...

  6. 李洪强iOS开发Swift篇---11_变量&常量&元组

    李洪强iOS开发Swift篇---11_变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对 ...

  7. PHP 获得当前页面所有变量常量的值

    get_defined_vars() - 返回由所有已定义变量所组成的数组,这个函数在二次开发的时候用起来非常给力: get_defined_constants();可以返回当前的所有常量 zend的 ...

  8. JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

    JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...

  9. TF:Tensorflow定义变量+常量,实现输出计数功能—Jason niu

    #TF:Tensorflow定义变量+常量,实现输出计数功能 import tensorflow as tf state = tf.Variable(0, name='Parameter_name_c ...

随机推荐

  1. 阶段3 2.Spring_02.程序间耦合_4 曾经代码中的问题分析

    创建新的项目 修改打成jar包 创建一个接口 用来模拟保存的方法 创建接口的实现类 我们没有IAccountDao这个类.那么就需要去创建Iaccountdao IAccountDao接口的创建 创建 ...

  2. 十八:jinja2之include标签

    用于将页面的某一块地方抽取出来,要嵌入内容的时候使用,继承的概念 把具体内容分别放到其他地方同一管理,要用的时候使用include继承 使用include的时候可以直接使用接收的数据

  3. C#学习笔记三(委托·lambda表达式和事件,字符串和正则表达式,集合,特殊的集合)

    委托和事件的区别 序号 区别 委托 事件 1 是否可以使用=来赋值 是 否 2 是否可以在类外部进行调用 是 否 3 是否是一个类型 是 否,事件修饰的是一个对象 public delegate vo ...

  4. iview Upload组件多个文件上传

    使用  iview Upload 上传组件 手动上传 包括单个文件和多个文件 思路:创建一个数组 把需要上传的文件 push到这个数组里面 1.引用组件 2.手动上传,根据官方文档 设置:before ...

  5. java中string , StringBuffer , StringBuilder 区别

    1.String String变量的值不能改变,如果要改变String变量的值,虚拟机首先会遍历方法区中的字符串常量,如果存在需要的值,则虚拟机直接把此常量值的地址分配给String变量,如果不存在这 ...

  6. SpringBoot如何使用PUT、DELETE请求方式

    SpringBoot 2.2.X默认不支持put,delete等请求方式的. 首先需要在配置文件中打开他们,代码如下: spring.mvc.hiddenmethod.filter.enabled=t ...

  7. Java 架构师面试题

    基础题目 Java线程的状态 进程和线程的区别,进程间如何通讯,线程间如何通讯 HashMap的数据结构是什么?如何实现的.和HashTable,ConcurrentHashMap的区别 Cookie ...

  8. python格式化当前时间,暂停一秒输出

    python格式化输出当前系统时间,可以实现暂停1秒输出时间 import timefor i in range(10): print(time.strftime("%Y-%m-%d %H: ...

  9. 机器学习-SVM中的SMO算法详解

  10. 6.纯css绘制叮当猫

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...