使用new(T) 会为 T 类型的新值分配已置零的内存空间,并返回地址(指针)
实际使用如下
ints := new([]int) //创建一个切片 这时ints是指针类型
*ints = append(*ints, 1,123,4,56,7,8,89,8,7) //使用必须先用*取值
fmt.Println(*ints) //如果想打印结果是切片里的值也必须使用*取值 [1 123 4 56 7 8 89 8 7]
使用 make(T,len) 返回初始化之后的 T 类型的值 而不是切片
可以直接使用
ints := make([]int,0)
ints = append(ints, 1,123,4,56,7,8,89,8,7)
fmt.Println(ints)
总结一下
new返回指针 适用于 值类型,如数组、结构体,
make返回具体的值 make() 只适用于 slice、map 和 channel.