一、基本数据类型
1、bool
只可能是true和flase。
var a bool = true
2、数值类型
1)整数型
- int8 有符号 8 位整型(-128 到 127) 长度: 8bit
- int16 有符号 16 位整型(-32768 到 32767)
- int32 有符号 32 位整型-2147483648 到 2147483647)
- int64有符号 64 位整型-9223372036854775808到 9223372036854775807)
- uint8 无符号 8 位整型(0到 255) 8位都用于表示数值
- uint16 无符号 16 位整型(0 到 65535)
- uint32 无符号 32 位整型(0 到 4294967295)
- uint64 五符号 64 位整型10 到 18446744073709551615
另外:int和uint的区别
int为有符号数,uint为无符号数。
有符号数能有正负,无符号数只有正与0。
当转换为二进制后,有符号数的第一位用1、0代表正、负。
2)浮点型
- float32 32位浮点型数
- float64 64位浮点型数
3)复数
4)byte字节
byte等于uint8
主要用于存放字符、字符串
如果只有英文字符,推荐用byte,因为省空间。
5)rune类型
rune等于int32,如果包含中文字符,就用rune。
在Go语言中,rune
类型用于表示Unicode码点(Unicode code point),它实际上是一个int32
类型的别名。rune
类型通常用于处理Unicode字符,特别是当需要处理字符串中的 Unicode 字符时,使用 rune
类型会更加方便。
注意:(中文字符通常是Unicode字符的一部分,Unicode码点范围覆盖了世界上几乎所有的书写系统,包括中文。因此,当你需要处理包含中文字符或其他Unicode字符的字符串时,使用 rune
类型可以更好地处理字符级别的操作,例如字符串的遍历、索引等。)
示例:
package main
import "fmt"
func main() {
str := "你好,世界!" // 包含中文字符的字符串
// 将字符串转换为rune切片
chars := []rune(str)
// 遍历rune切片,打印每个Unicode字符的码点和字符本身
for i, char := range chars {
fmt.Printf("索引 %d: 码点 %U, 字符 %c\n", i, char, char)
}
}
结果:
索引 0: 码点 U+4F60, 字符 你
索引 3: 码点 U+597D, 字符 好
索引 6: 码点 U+FF0C, 字符 ,
索引 7: 码点 U+4E16, 字符 世
索引 10: 码点 U+754C, 字符 界
索引 13: 码点 U+FF01, 字符 !