为了账号安全,请及时绑定邮箱和手机立即绑定

Go 中的 new(Struct) 和 &Struct{} 有什么区别?

Go 中的 new(Struct) 和 &Struct{} 有什么区别?

Go
桃花长相依 2021-06-23 18:08:58
他们似乎是一样的:package mainimport "fmt"type S struct {    i int}func main() {  var s1 *S = new(S)  fmt.Println(s1)  var s2 *S = &S{}  fmt.Println(s2)  // Prints the same thing.}更新:嗯。我刚刚意识到没有明显的方法可以使用 new 初始化 Si。有没有办法做到这一点?new(S{i:1})似乎不起作用:/
查看完整描述

3 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

文档

作为一种限制情况,如果复合文字根本不包含任何字段,它会为该类型创建一个零值。表达式 new(File) 和 &File{} 是等价的。


查看完整回答
反对 回复 2021-06-28
  • 3 回答
  • 0 关注
  • 1008 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信