- new可以定义所有类型,map、chan、slice这些引用类型定义后,初始值为nil。未分配内存空间,后续直接调用会报错
- make针对map、chan、slice引用类型,定义后直接分配内存空间,后续可以直接正常使用
- new返回的是指针
- make返回的是引用值
//定义s为整型的切片
var s []int
//切片可以通过append方法添加元素,append默认拥有分配内存空间的效果
s = append(s , 1)
fmt.Println("%v",s)
//定义map
//直接通过var定义 map为nil,后续不能直接调用,不然会直接报错
//需要通过make分配内存空间
var s map[string]int
s["one"] = 1;
fmt.Println("%v",s) //(此处会报错)
//定义整型切片
var s []int
//make分配内存空间 参数1:切片类型 参数2:长度 参数3:容量
//切片的容量可以动态增加 所以设置为0也没事
s = make([]int , 0)
s = append(s , 1)
fmt.Println("%v",s)
var s map[string]int
s = make(map[string]int)
s["one"] = 1
fmt.Println("%v",s)