Go 的 bool 类型不支持 其他类型的强制转换
int类型和int32被认为是两种不同的类型。
编译器不会做自动转换
复数的表示
var value1 complex64
value1 = 3.2 + 12i
real 实部 imag 虚部
字符类型
rune 代表单个unicode字符
byte 代表utf 8 字符串的单个字符串的值
值类型
在GO语言中数组是一个值类型(value type),
所有值类型变量在复制和作为参数传递时都会产生一次复制操作
切片
make([]int, 5)
基于数组切片创建数组切片
oldSlice := []int{1,2,3,4,5}
newSlice := oldSlice[:3]
Map
myMap = make(map[string] PersonInfo)
delete 删除
流程控制
-
条件语句不需要括号
-
花括号必须存在
必须平行赋值
函数
小写字母开头的函数只对本包内可见,大写字母开头的函数能被其他包调用
不定参数类型
func myfunc(args ...int)
传入参数的数量不确定
myfunc(1, 3, 3)
myfunc(1, 2)
匿名函数与闭包
闭包是可以包含自由变量的代码块(未绑定到特殊的对象)
defer
defer srcFile.Close()
即使其中的函数抛出异常,srcFile都会被保证正常关闭
panic()和recover()