• 主页
  • 架构
  • 编程语言
  • 数据存储
  • 网络
  • VMware
  • 服务器
  • 组网
  • AI
  • 算法系列
  • 设计模式
  • 读书笔记
  • 思考
  • 工具
  • 其它技术

  • 主页
  • 架构
  • 编程语言
  • 数据存储
  • 网络
  • VMware
  • 服务器
  • 组网
  • AI
  • 算法系列
  • 设计模式
  • 读书笔记
  • 思考
  • 工具
  • 其它技术

Effective-Go

2024-08-18

最近有人推荐Effective Go,这本书算是给初学者看的,因为已经看多很多Go方面的书了,所以再看这本书,总体收获较小,文章地址:https://learnku.com/docs/effective-go/2020

讲述的知识里,有几点印象深刻一些,在这里分享出来

  1. 格式化

    go fmt:https://www.jianshu.com/p/104b33439ac2

  2. new和make区别

    • new:用来分配内存的内建函数, 但与其它语言中的同名函数不同,它不会初始化内存,只会将内存置零。 也就是说,new(T) 会为类型为 T 的新项分配已置零的内存空间, 并返回它的地址,也就是一个类型为 *T
    • make:只用于创建切片、映射和信道,并返回类型为 T(而非 *T)的一个已初始化 (而非置零)的值。 出现这种用差异的原因在于,这三种类型本质上为引用数据类型,它们在使用前必须初始化
  3. 数组和切片的关系

    • 切片是对数组的引用

    • 如果切片范围没有超过数组长度,则两者可以认为是完全相同的东西

    • 如果切片范围超过数组长度,会自动创建一个新的底层数组,取消对原数组的引用,数组和切片便分隔开了

  4. type

    • type File struct/type Integer int:这是结构体,也是类型,实现了函数便是类
    • type IFile interface:这是接口,如果类中的函数包含接口中的函数,则这个类实现了该接口

资料

  1. https://blog.csdn.net/weixin_42266173/article/details/81749949
  2. https://studygolang.com/articles/27012?fr=sidebar 一篇文章理解 golang 中切片与数组的关系
  3. https://learnku.com/docs/effective-go/2020

扫一扫,分享到微信

微信分享二维码
Beego框架使用
减治法
© 2025 John Doe
Hexo Theme Yilia by Litten