结构体使用new,map中使用make创建一个数据结构,为什么要有这两种方式?

结构体使用new,map中使用make创建一个数据结构,为什么要有这两种方式?

您好,想请教一下这个问题。

n1 := make(Node)

m1 := make(map[string][string])

为什么创建内置数据结构map和自定义结构体使用不同的内置函数,两者有什么差别。




正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
ccmouse 2021-06-29 10:19:01

同学问的应该是

n1 := new(Node)

m1 := make(map[string][string])

make只能用于创建切片,map,或是后面说到的channel。而new则用于自定义类型。

new仅仅是分配内存,赋初值(即零值)。而make操作比较复杂,有一些运行时的内部结构需要创建。


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师