Go 语言将数据类型分为四类:基础类型、复合类型、引用类型和接口类型。本章介绍基础数据类型,包括 整型,浮点,复数,布尔,字符串,常量。
整型
包括 int8、int16、int32和int64,还有 uint8、uint16、uint32和uint64 四种无符号整形。
分别对应8、16、32、64bit大小的整型。
1 | fmt.Printf("%v\n", 10) // 10 |
单引号其实是表示该字符的 Unicode 编码,也是整型。
浮点型
Go 提供了float32和float64两种浮点类似,符合 IEEE754 规范,会 js 的朋友都知道 0.1 != 0.3-0.2 的 bug。
1 | fmt.Printf("%f\n", 0.3-0.2) // 0.1 |
好吧,反正 js 习惯了,也不算什么。
math.MaxFloat32 最大值大约 3.4e38
math.MaxFloat64 最大值大约 1.8e308
如果不知道科学计数法,那么简单说 1e3 == 1000,所以 e308 就是 308 个 0。
复数
不会,跳过。。
布尔型
都一样,跳过。。
字符串
只能使用 双引号 包裹,单引号只能包裹到那个 Unicode字符,而且单引号表示的是字符的Unicode十进制值。
字符串长度通过 len
得到,切片形式用 s[i:j]
方式得到。
1 | s := "hello, world" |
转义为 \xhh
十六进制,\ooo
八进制, \uhhhh
Unicode十六进制以及 \Uhhhhhhhh
扩展Unicode十六进制。
为了便于日常使用,还提供了字符模板,包括 text 和 html 的模板,两者区别只是 html 提供了转义功能。
字符模板通过反引号包裹大段文本:
1 | const GoUsage = `Go is a tool for managing Go source code. |
常量
略。。。
小结
就基础数据而言,跟js大体类似,具体的坑就等使用时发现吧。
明天继续加油。