golang 学习笔记 -- 类型

intuint的实际宽度会根据计算架构不同而不同,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")
原文地址:https://www.cnblogs.com/saryli/p/11611834.html