基本数据类型
- Bool 类型,值是常量 true 或 false
- 数值类型
- 整形
- 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 位整形(0-18446744073709551615))
- 浮点型
- float32 :32 位浮点型数
- float32 :32 位浮点型数
- 其他
- byte 等于 uint8
- rune 等于 int32
- rune 等于 int32
- 整形
数据类型转换
strconv
- Atoi:string 转换为 int
Atoi() - Itoa:int 转换为字符串
Itoa()
- Atoi:string 转换为 int
parse 类函数
ParseBool()、ParseFloat()、ParseInt()、ParseUint()。
1
2
3
4b, err := strconv.ParseBool("true")
f, err := strconv.ParseFloat("3.1415", 64)
i, err := strconv.ParseInt("-42", 10, 64)
u, err := strconv.ParseUint("42", 10, 64)ParseInt()和 ParseUint()有 3 个参数:
1
2func ParseInt(s string, base int, bitSize int) (i int64, err error)
func ParseUint(s string, base int, bitSize int) (uint64, error)bitSize参数表示转换为什么位的 int/uint,有效值为 0、8、16、32、64。当 bitSize=0 的时候,表示转换为 int 或 uint 类型。例如 bitSize=8 表示转换后的值的类型为 int8 或 uint8。base参数表示以什么进制的方式去解析给定的字符串,有效值为 0、2-36。当 base=0 的时候,表示根据 string 的前缀来判断以什么进制去解析:0x开头的以 16 进制的方式去解析,0开头的以 8 进制方式去解析,其它的以 10 进制方式解析。
format 类函数
将给定类型格式化为 string 类型:FormatBool()、FormatFloat()、FormatInt()、FormatUint()。
1
2
3
4s := strconv.FormatBool(true)
s := strconv.FormatFloat(3.1415, 'E', -1, 64)
s := strconv.FormatInt(-42, 16) //表示将-42转换为16进制数,转换的结果为-2a。
s := strconv.FormatUint(42, 16)第二个参数 base 指定将第一个参数转换为多少进制,有效值为
2<=base<=36。当指定的进制位大于 10 的时候,超出 10 的数值以 a-z 字母表示。例如 16 进制时,10-15 的数字分别使用 a-f 表示,17 进制时,10-16 的数值分别使用 a-g 表示。
iota
是 go 语言的一个计数器
示例:
1 | const ( |
特性:
- 只能在常量中使用
- 不同的const定义块互相不干扰
- 没有表达式的常量定义复用上一行的表达式
- 从第一行开始,iota从0逐行加一