bool 布尔类型
布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true
数值类型
1. 整数型
有符号:
- int8 有符号 8 位整型 (-128 到 127) 长度:8bit
- int16 有符号 16 位整型 (-32768 到 32767)
- int32 有符号 32 位整型 (-2147483648 到 2147483647)
- int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
有符号数,会拿第一位来表示正负
- 00000001: 1
- 10000001: -1
无符号:
- uint8 无符号 8 位整型 (0 到 255) 8位都用于表示数值:
- uint16 无符号 16 位整型 (0 到 65535)
- uint32 无符号 32 位整型 (0 到 4294967295)
- uint64 无符号 64 位整型 (0 到 18446744073709551615)
为什么go语言比python有这么多种类型?
- 很多场景之下,数字有上限,我们可以选择合适的数据类型来降低内存的占用
- 对于python来说,int占用字节是动态的,python的int我们不用担心超过上限
- go语言,int是一种动态,取决于机器本身是多少位,64位机器上运行,int就是int64,如何是32位机器上,就是4个字节int32
var age int = 18
fmt.Println(unsafe.Sizeof(age))
2. 浮点型
- float32 32位浮点型数
- float64 64位浮点型数
3. 复数
byte 等于 uint8
4. byte字节
- byte 等于 uint8
5. rune类型
- rune 等于 int32
字符
Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成的,而Go的字符串不同,它是由字节组成的。
package main
import (
"fmt"
)
func main() {
var a byte
a = 'a'
//输出ascii对应码值 。。 这里说明一下什么是ascii码
fmt.Println(a)
fmt.Printf("a=%c", a)
}