go 指针,new, make

指针

形参若有指针类型,没有赋值的话,则会报指针为nil

type Person struct {
}
func getName()  (resultList *Person, err error) {
    resultList = new(Person)//需要声明,否则报nil 
}

new

new可以分配任意类型的数据
new分配返回的是指针
new分配的空间被清零

type Person struct {}
func main() {
    p := new(Person)
    //p已经是指针了
}

make

make只能用来分配及初始化类型为slice,map,chan的数据
make分配后,会进行初始化

func main(){
       list := make([]int, 0) //切片
       mp := make(map[int]interface{}, 10) //缓冲长度为10的map
       ch := make(chan int, 0) //chan
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容