Golang中new和make有什么区别

   2024-11-08 8140
核心提示:在Golang中,new 和 make 是两个用于分配内存的内建函数。new 函数:new 函数用于分配并初始化一个值的指针,返回指针。new 函数

在Golang中,newmake 是两个用于分配内存的内建函数。

new 函数:

new 函数用于分配并初始化一个值的指针,返回指针。new 函数的参数是一个类型,并返回该类型的指针。分配的内存被置零,也就是每个位都被设置为零值。new 函数返回的是指向新分配的零值的指针。

示例:

var p *intp = new(int)*p = 42fmt.Println(*p) // 输出: 42

make 函数:

make 函数用于创建内置引用类型(如 slicemapchannel)的对象。make 函数的参数是一个类型和一个长度(可选,不适用于 channel)。make 函数返回该类型的初始化的非零值。

示例:

var s []ints = make([]int, 5, 10)s[0] = 1fmt.Println(s) // 输出: [1 0 0 0 0]

综上所述,new 函数返回的是指向零值的指针,而 make 函数返回的是初始化的非零值。

 
举报打赏
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行

网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策网站留言    |  赣ICP备2021007278号