合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
与其他语言的差异: * Go 语⾔不允许隐式类型转换 * 别名和原有类型也不能进⾏隐式类型转换 ## 整型 ~~~ uint8 无符号 8位整型 0~255 # unit8 uint6 无符号16位整型 0~65535 uint32 无符号32位整型 uint64 无符号64位整型 #------------------------------------ uint8 8位整型 0~255 uint16 16位整型 0~65535 uint32 32位整型 # rune uint64 64位整型 uint int 32位或者64位取决于操作系统 ~~~ ### 类型的预定义值 ```go math.MaxInt64 math.MaxUint64 math.MaxFloat64 ``` ## 浮点数和复数 ~~~ float32 32位浮点型 float64 64位浮点型 complex32 32位浮点型 complex64 64位浮点型 ~~~ ## 字符串 ### 字符串的底层布局 ![](https://box.kancloud.cn/8ba2ca6ba2bddb322a7d645a86f7611d_1076x634.png) ### 字符串更改 ``` s := "你好 world!" s1 := []byte(s) s1[0] = 'h' s1[1] = 'i' str = string(s) fmt.Println(str) ``` ~~~ // 字符 byte,单引号 var ch byte ch = 'a' fmt.Print("ch =", ch) // 字符串 string 以'\0'结尾 var str string str = "abc" fmt.Print("str = ", str) ~~~ ## 布尔型 bool ~~~ true false ~~~ ## 字节型 byte ## 类型零值 类型零值是指变量被声明后的默认值,值类型默认为0,布尔类型默认为false,string默认为空字符串""。 ## 类型存储大小 ![](https://box.kancloud.cn/3afb0a13ac8d7b9bc7f401b993b9b321_1271x592.png)