数据类型
- int 、uint、intptr、uintptr 在64位机器为64位,在32位机器为32位
数据类型 | 初始值 | 说明 |
---|
bool | false | 1字节,true或false |
int uint | 0 | 64位机器:8字节 32位:4字节 |
int8 int16 int32 int64 | 0 | 有符号整数 |
uint8 uint16 uint32 uint64 | 0 | 无符号整数 |
float32 float64 | 0 | 浮点数 |
complex64 complex128 | 0+0i | 复数,real()取实部 imag()取虚部 |
byte rune | 0 | 字符,byte即uint8 rune即int32 |
string | “” | 字符串,2字节 |
uintptr | 0 | 8字节 存储变量地址 用于处理指针偏移 |
指针 | nil | 8字节 |
slice | nil | 24字节,切片即动态数组 |
map | nil | 8字节 |
chan | nil | 8字节 |
数组 | 根据类型赋相应初值 | 由数据类型和数组大小确定 |
struct | 各字段类型的初值 | |
函数 | nil | |
interface | nil | |
make函数
- make函数只可用于生成切片slice、map和chan
list1 := []int{}
list2 := []int{1,2,3}
list3 := make([]int,3)
list4 := make([]int,3,5)
m1 := map[int]string{}
m2 := map[int]string{1:"nihao",2:"world"}
m3 := make(map[int]string)
ch1 := make(chan int)
ch2 := make(chan int,3)
new函数
- 函数只有一个参数即数据类型,函数将创建并初始化一个该类型的对象,并返回一个指向该对象的指针
- 数据类型指上述所有数据类型
p := new(int)
p := new([3]int)
x := new(interface{})
list := new([]int)
m := new(map[int]string)
ch := new(chan int)