标识符和关键字
标识符
标识符只能以字母和_
组成,并且只能以字母和_
开头。
关键字
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
其数据类型有:
- string,字符串
- int,整型
- bool,布尔型
上面这种是一个变量一个变量的声明,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
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
)