golang中很少使用new,好奇心驱使 弄清楚一下到底怎么用
package main
import "fmt"
func main(){
//new已经分配好了地址空间,可以直接用
i := new(int)
fmt.Println(*i)
*i = 2
fmt.Println(*i)
//未初始化地址,无法使用
//var j *int
//*j = 1
//new一个slice或者map呢?
s := new([]int)
//(*s)[0] = 1 //直接使用不可以,未给slice中的data分配空间
//append操作是可以的,因为append会发现空间不足而自动增长空间
*s = append(*s, 1)
fmt.Println(*s)
//同理,new出来的map也无法直接使用
//m := new(map[string]string)
//(*m)["1"] = "1"
}
golang中的Slice、Map、Chan都要用make