int 和 uint的实际宽度会根据计算架构不同而不同,386下4个字节, amd64下8个字节
byte可看做uint8的别名类型
rune可看做int32的别名类型,专用于存储Unicode编码的单个字符。
5种方式来表示一个rune字面量:
rune字面量表示转义符:
原生字符串字面量(由反引号包裹):所见即所得
解释型字符串字面量(由双引号包裹):可以解析转义字符。
字符串值是不可变的,对其操作只会返回一个新字符串,而不会改变原字符串并返回。
数组:数组的长度是数组类型的一部分,只要类型声明中的数组长度不同,即使两个数组类型的元素类型相同,他们也是不同的类型,一旦声明中确定了长度,就无法改变它了。数组零值是一个不包含任何元素的空数组。eg:
[4]uint32{}
var ipv4 [4]uint8 = [4]uint8{192,168,0,1}
或者
var ipv4 [4]uint32 = [...]uint32{192, 168, 0, 1}
标记...表示需由Go编译器计算该值的元素数量并以此获得其长度
切片 slice 零值是nil(cap 与len都是0)
var ips = []string{"192.168.0.1","192.168.0.2","192.168.0.3"}
切片的字面变量不携带长度信息,切片长度可变,且不是类型的一部分;只要元素类型相同,两个切片的类型是可以相同的,此外,切片类型的零值总是nil
切片值相当于对某个底层数组的引用。
ips = make([]string, 10)
字典: map 零值是nil
var ipSwitchs = map[string]bool{} ipSwitchs["192.168.6.1"]=true delete (ipSwitchs,"192.168.6.1")