标识符只能以字母和 _
组成,并且只能以字母和 _
开头。
Go中有25个关键字:
break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var
变量需要先声明,再使用。其语法如下:
var name string
其数据类型有:
上面这种是一个变量一个变量的声明,go也有批量声明方式:
var ( name string age int isBoy bool)
变量的初始化:
func main(){ name = "joker" age = 18 isBoy = true}
注意: Go语言中非全局变量声明了必须使用,不使用则编译不过去。
变量还可以声明的同时并赋值:
var name string = "Joker"
也可以根据值来判断变量是什么类型:
var age = 14
还可以用简短变量声明(只能在函数体里使用):
name := "Joker"fmt.Print(name)
匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。
匿名变量用 _
来表示,如下:
func foo(int, string){ return 10, "Joker"}func main(){ x, _ = foo() _, y = foo()}
var
func
等;_
多用于占位符,表示忽略值;常量是恒定不变的值,声明常量的关键字是 const
。
常量在定义的时候必须赋值,如下:
const c1 = 3.14159
多个常量也可以一起声明,如下:
const ( c1 = 3.14 c2 = 0.68)
在批量声明常量的时候,如果其中有一个常量没有赋值,其内容和上一个常量一样,如下c2,c3的内容也为200:
const ( c1 = 200 c2 c3)
iota
是go语言中的一种常量计数器,只能在常量的表达式中使用。
iota
在 const
关键字出现的时候被重置为0, const
中的变量每声明一行常量声明将使 iota
计数一次, iota
可理解为是 const
语句块中的行索引,使用 iota
能简化定义,在定义枚举时很有用,如下:
const ( n1 = iota // n1=0 n2 // n2=1 n3 // n3=2)
几种常见的用法:
(1)使用 _
跳过某些值
const ( n1 = iota //0 n2 //1 _ n4 //3 )
(2) iota
声明中间插队
const ( n1 = iota //0 n2 = 100 //100 n3 = iota //2 n4 //3 ) const n5 = iota //0
(3)定义数量级
const ( _ = iota KB = 1 << (10 * iota) MB = 1 << (10 * iota) GB = 1 << (10 * iota) TB = 1 << (10 * iota) PB = 1 << (10 * iota) )
(4)、多个 iota
定义在一行
const ( a, b = iota + 1, iota + 2 //1,2 c, d //2,3 e, f //3,4 )
完-----------------------