Golang中所有的值类型变量常量都会在声明时被分配内存空间并赋予默认值
数字型 0
布尔型 false
字符串 ""
bit:比特位,二进制中的一位,信息的最小单位
byte:字节,1byte=8bit,在Go中是uint8的别名
整数型
int: 整数 integer
| 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
第一位用于存放正负
范围 -128 ~ 127
uint: 无符号整数 unsigned integer
| 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
范围:0~255
| 名称 | 长度 | 范围 |
|---|---|---|
| int8 | 8bit | -128 ~ 127 |
| uint8 | 8bit | 0 ~ 255 |
| int16 | 16bit | -32768 ~ 32767 |
| uint16 | 16bit | 0 ~ 65536 |
| int32 | 32bit | |
| uint32 | 32bit | |
| int64 | 64bit | |
| uint64 | 64bit | |
| int | 32 / 64bit | |
| uint | 32 / 64bit |
int会根据操作系统自动来判断是int32或int64
decimal:十进制,无需前缀
binary: 二进制,前缀0b、0B
octal:八进制,前缀0o、0O
hexadecimal:十六进制,前缀0X、0x
浮点型
f1 := 2.45
var f2 float32 = 2.34
fmt.Printf("f1 %v, %T\n", f1, f1)
fmt.Printf("f2 %v, %T\n", f2, f2)
字符型
byte uint8的别名
rune uint32的别名
const (
c1 byte = 65
c2 = 'a'
c3 rune = '中'
)
fmt.Printf("c1 的码值=%v, 字符为:%c, 类型是%T\n", c1, c1, c1)
fmt.Printf("c2 的码值=%v, 字符为:%c, 类型是%T\n", c2, c2, c2)
fmt.Printf("c3 的码值=%v, 字符为:%c, 类型是%T\n", c3, c3, c3)
布尔型
bool true false
字符串型
string
var s string = "Hello"
fmt.Printf("s=%v, type is %T", s, s)
求字符串个数
len(str)