So i know in go you can initialize a struct two different ways in GO. One of them is using the new keyword which returns a pointer to the struct in memory. Or you can use the { } to make a struct. My question is when is appropriate to use each? Thanks
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

首页/
已采纳
在Go中初始化结构时使用new与{}
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
3条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
doupeng5320 2014-02-28 00:06关注I prefer
{}
when the full value of the type is known andnew()
when the value is going to be populated incrementally.In the former case, adding a new parameter may involve adding a new field initializer. In the latter it should probably be added to whatever code is composing the value.
Note that the
&T{}
syntax is only allowed whenT
is a struct, array, slice or map type.本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2024-11-23 16:00好奇的菜鸟的博客 Go语言中的内存分配与初始化:new与make函数详解
- 2021-04-01 03:10Huazie的博客 Go语言数据初始化
- 2023-12-02 05:52奔跑的蜗牛.的博客 也不支持“类”的继承等面向对象的概念Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型Go语言中可以使用type关键字...
- 2020-12-21 07:18weixin_39895995的博客 转自:http://my.oschina.net/ifraincoat/blog/517139自定义一个结构体type Rect struct {x, y float64width, height float64}初始化方法:rect1 := new(Rect)rect2 := &Rect{}rect3 := &Rect{0, 0, 100, ...
- 2022-05-17 06:07JIeJaitt的博客 目录Go语言结构体Go语言的类Go语言结构体定义Go语言实例化结构体——为结构体分配内存并初始化基本的实例化形式创建指针类型的结构体取结构体的地址实例化Go语言初始化结构体的成员变量使用“键值对”初始化结构体...
- 2020-12-21 07:19weixin_39724748的博客 目录1、自定义一个结构体type Vertex struct {X, Y float64}2、初始化方法-指针:rect1 := new(Vertex )rect2 := &Vertex {}rect3 := &Vertex {1, 2}rect4 := &Vertex {X:100, Y:200}注意: 这几个变量...
- 2020-12-21 03:57weixin_39900286的博客 a.B.Age) } 在编写 Go 代码中经常会遇到上述层层嵌套的数据结构,比如 Google 的 protobuf 往往有好几层的嵌套。 通常因为业务逻辑的需要这样复杂的结构是必须的,但在编写测试样例时会大大增加开发的负担。因为...
- 2021-01-12 19:15哈全文的博客 而s0的方法 s0 := Student{} 表示的是一个Student类型,两者是不一样的 在Go语言中,未进行初始化的变量都会被初始化为该类型的零值,例如bool类型的零值为false, int类型的零值为0, string类型的零值为空字符串....
- 2020-12-30 11:30君信陌的博客 运行一段程序,警告:service/mysqlconfig.go:63::error: golang.guazi-corp.com/tools/ksql-runner/model.CreatingMysqlMongodbRecord composite literal uses unkeyed fields (vet)其中,composite literal uses ...
- 2022-12-31 08:31阿兵云原生的博客 使用 golang 进行编码过程中,你们都是如何初始化数据结构的呢GO 里面提供了 2 个关键字来进行初始化数据结构上面这种情况,是初始化的时候已经明确好了需要填的值,可以使用上面这种做法,不过工作中大多数情况初始...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司