go new

尽管没有构造函数,go有一个内置的函数new,可以用来分配一个类型需要的内存。new(X)&X{}是等效的:

goku := new(Saiyan)
// 等效
goku := &Saiyan{}

用那种方式取决于你,但是你会发现,当需要去初始化结构体字段时,大多数人更喜欢使用后者,因为后者更易读:

goku := new(Saiyan)
goku.name = "goku"
goku.power = 9001 //对比 goku := &Saiyan {
name: "goku",
power: 9000,
}

无论你选择那种方式,如果你选择上面的工厂模式,你可以隐藏一些代码细节,但是需要留意任何内存分配细节。

本文转自:http://codingdict.com/article/22526

最新文章

  1. [转]ExtJS Grid 分页时保持选中的简单实现方法
  2. 格式化输出[parts/iomanip]
  3. QQ发送邮件
  4. OLE-Excel基本操作
  5. find和findstr
  6. 使用apache的ab对页面进行压力测试
  7. APK安装时的过滤方式:包名白名单、证书认证
  8. js_初识js_js基本语法和数据类型
  9. 安卓视频播放器(VideoView)
  10. net core体系-web应用程序-3项目结构、配置文件详解
  11. 『TensorFlow』分布式训练_其二_单机多GPU并行&GPU模式设定
  12. 你真的会使用Github吗?
  13. C/C++注册动态对象到Lu系统并进行运算符重载
  14. 让IE浏览器支持CSS3表现
  15. WPF 自定义MenuItem样式
  16. RedisDesktopManager无法连接虚拟机中启动的redis服务问题解决
  17. 搭建Go调试环境(LiteIDE)
  18. HttpClient传递Cookie
  19. [前端随笔][css] 弹性布局
  20. WebMagic 爬虫框架

热门文章

  1. 关于Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
  2. 【软工项目Beta阶段】第11周Scrum会议博客
  3. windows 下redis在后台运行
  4. [CSP-S模拟测试72]题解
  5. Django中get()和fiter()的区别
  6. context和getApplicationContext()的区别
  7. stm32 单片机
  8. 建站手册-职业规划:职业履历(CV)
  9. (动态改变数据源遇到的问题)sqlserver2012:No Dialect mapping for JDBC type: -9解决方案
  10. Openstack组建部署 — Environment of Controller Node