标识符和关键字
标识符
程序员自己定义的具有特殊意义的,例如变量名、常量名、函数名、包名……
组成:由数字、字母、_(下划线)组成,不能以数字开头,标识符不可以是关键字
注意:标识符区分大小写
关键字
Go语言中预先定义好的
Go语言中的关键字:
break default func interface select
chan case const continue defer
go map struct switch if
else goto package fallthrough var
return import type range for
Go语言中的保留字:
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64
complex64 complex128
bool byte rune string error make len cap
new append copy close delete panic
recover true false iota nil
关键字和保留字都不可以用来做标识符
变量
方便在内存上访问数据
变量类型
每一个变量都有自己的变量类型,比如整型、浮点型、布尔型……
变量的声明
变量在使用之前都必须要声明,且声明变量后必须使用,不然会报错
格式:var 变量名 变量类型
变量类型必须写
// 变量的声明
var name string
若要一次声明多个变量
var (
name string
age int
)
变量的初始化
声明时进行初始化
var name (string) = "张三"
这时变量类型可以不写,编译器会根据值判断变量类型
短变量声明声明时进行初始化
name := "张三"
注意:只能在函数内使用
若声明时没有给出初始值,则go语言会自动初始化
整型和浮点型默认初始化为0
字符型默认初始化为空字符( )
布尔型默认初始化为false
切片、指针、map……默认初始化为nil
匿名变量
某变量需要接收但不需要使用时可以用_
var arr = [...]int{1,2,3,4,5}
for _,v := range arr {
}
常量
值恒定不变
格式:const 变量名 变量类型 = 值
注意:常量在定义时必须赋值 多个常量一起声明
const (
num1 = 1
num2 = 2
num3 = 3
)
若下面的常量忽略了值,则忽略了的值与上面一行一样
const (
num1 = 1
num2
num3
)
const (
num1 = 1
num2 = 1
num3 = 1
)
上面两种写法结果一致
iota
iota是常量计数器,只能在常来那个表达式中使用 计数规则:const出现时iota重置为0 const中每新增一行常量声明iota计数一次
几种情况
情况一
const (
num1 = iota //0
num2 //1
num3 //2
num4 //3
)
情况二
const (
num1 = iota //0
_
num3 //2
num4 //3
)
情况三
const (
num1 = iota //0
num2 = 100 //100
num3 //2
num4 //3
)
情况四
const (
num1,num2 = iota,iota //0 0
num3,num4 //1 1
)
情况五
const (
_ = iota
KB = 1 << (iota * 10) // 10000000000 1024
MB = 1 << (iota * 10) // 10000000000 0000000000 1024 * 1024
GB = 1 << (iota * 10) // .... 1024*1024*1024
TB = 1 << (iota * 10) // .... 1024*1024*1024*1024
)