数据类型的声明:
类型 | var | make | := | new |
---|---|---|---|---|
array | √ | 不需要 | √ | √ |
切片 | √ | √ | √ | 不需要 |
map | × | √ | √ | 不需要 |
channel | × | √ | × | 不需要 |
注:map使用var
声明,初始化为nil
,nil
不能直接赋值;
channel使用var
和 :=
声明,没有对channel分配空间,发生死锁;
数据类型整理:
类型 | 声明 | 创建 | 案例 |
---|---|---|---|
变量 | var 名称 类型 | var a int = 1 或 a:=1 | |
常量 | const 名称 类型 | const MAX int = 10 | |
数组(一维) | var 名称 [函数的个数] 类型 | var arr [10]int =[10]int{1,2,5} 或 brr:=[...]int{1,2,3} | |
数组(二维) | var 名称 [行个数] [列个数] 类型 | var arr[3][4] int = [3][4]int{{1,2,3,4}, {2,3,4,5}, {3,4,5,6}} | |
切片 | var 名称 [] 类型 | make([]类型,5) | s:=[]int{1,2,3,4,5} |
map | var 名称 map [keyType] valueType | make(map[keyType]valueType,1) | m:=make(map[int]string,1) |
结构体 | type 名称 struct { 结构体成员列表 } | `` | |
结构体数组 | var 名称 [个数]结构体名称 | var arr [5]student | |
结构体切片 | var 名称 []结构体名称 | ||
指针 | var 名称 *类型 | ||
数组指针 | var 名称 *[数组个数]类型 | var p *[5]int | |
切片指针 | var 名称 *[]类型 | var arr []int=[]int{1,2,3,4,5} | |
指针数组 | var 名称 [数组个数]*类型 | var arr [3]*int | |
指针切片 | var 名称 []*类型 | var slice []*int | |
结构体指针 | var 名称 * 结构体名称 | `` | |
channel | var 名称 chan 类型 | make(chan 类型, 容量) | |
单向channel,单项写 | var 名称 chan <- 类型 | make(chan<- 类型, 容量) | |
单向channel,单项读 | var 名称 <- chan 类型 | make(<-chan 类型,容量) |