关键字(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
保留字(37个)
append bool byte cap close complex complex64 complex128 uint16
copy false float32 float64 imag int int8 int16 uint32
int32 int64 iota len make new nil panic uint64
print println real recover string true uint uint8 uintptr
变量
变量声明
用关键字var
,变量的声明必须使用空格隔开
var 变量名 变量类型
//单独声明
var name string
//一次声明多个变量
var test1, test2 string
//批量声明,一般用于声明全局变量
var (
a string //默认值是""
b int //默认值是0
c bool //默认值是false
)
变量声明必须使用;否则未使用话,go语言会报错。
指定变量类型,如果没有初始化,则会有默认值
string 默认值是""
int 默认值是0
bool 默认值是false
还有一些是nil
变量初始化
var (
a string
b int
c bool
)
a = "haha"
b = 100
c = true
//声明变量并且初始化
var x string = "Golang"
var x, y string = "Golang", "java"
//变量推导(变量根据默认值的类型设定变量类型)
var y = "Golang"
var x, z = 20, 40
注意同一个作用域内,变量不能重复声明,下面的示例是错误的:
var a = "aa"
var a = "bb"
//短变量声明(只能在函数内部使用)
m := 100
m, k := 100, true
注意 := 左侧如果没有声明新的变量,就产生编译错误
var intVal int
intVal :=1 // 这时候会产生编译错误
intVal,intVal1 := 1,2 // 此时不会产生编译错误,因为有声明新的变量,因为 := 是一个声明语句
匿名变量(_
)
//定义函数
func foo()(string, int){
return "a", 100
}
_
表示占位
a, _ := foo()
fmt.Println(a)
_, b := foo()
fmt.Println(b)
常量
常量用const
,在定义时候必须赋值,且程序自行期间不可再更改。
const pi = 3.1415
const e = 2.7182
const (
a = 100
b = 200
c
d
)
//c和d不赋值的话,默认用前一个值,即都是200
iota
是go语言的额常量计算器,只能在常量的表达式使用。
iota
在const
关键字出现时将被重置为0,const中每新增一行常量声明将使用iota
计数一次(iota可理解为const语句快中的行索引)。
应用于定义枚举。
const (
n1 = iota //0
n2 //1
n3 //2
n4 //3
)
使用_
跳过某些值
const (
n1 = iota //0
n2 //1
-
n4 //3
)
const (
n1 = iota //0
n2 = 100 //100
n3 = iota //2
n4 //3
)
const n5 = iota //0
const (
a, b = iota + 1, iota + 2 // iota是0,a是1,不是2
c, d // c, d = iota + 1, iota + 2 ,iota是1,a是2,不是3
e, f // e, f = iota + 1, iota + 2 ,iota是2,a是3,不是4
)
有疑问加站长微信联系(非本文作者)