最近有人推荐Effective Go,这本书算是给初学者看的,因为已经看多很多Go方面的书了,所以再看这本书,总体收获较小,文章地址:https://learnku.com/docs/effective-go/2020
讲述的知识里,有几点印象深刻一些,在这里分享出来
-
格式化
go fmt:https://www.jianshu.com/p/104b33439ac2
-
new和make区别
- new:用来分配内存的内建函数, 但与其它语言中的同名函数不同,它不会初始化内存,只会将内存置零。 也就是说,
new(T)
会为类型为T
的新项分配已置零的内存空间, 并返回它的地址,也就是一个类型为*T
- make:只用于创建切片、映射和信道,并返回类型为
T
(而非*T
)的一个已初始化 (而非置零)的值。 出现这种用差异的原因在于,这三种类型本质上为引用数据类型,它们在使用前必须初始化
- new:用来分配内存的内建函数, 但与其它语言中的同名函数不同,它不会初始化内存,只会将内存置零。 也就是说,
-
数组和切片的关系
-
切片是对数组的引用
-
如果切片范围没有超过数组长度,则两者可以认为是完全相同的东西
-
如果切片范围超过数组长度,会自动创建一个新的底层数组,取消对原数组的引用,数组和切片便分隔开了
-
-
type
- type File struct/type Integer int:这是结构体,也是类型,实现了函数便是类
- type IFile interface:这是接口,如果类中的函数包含接口中的函数,则这个类实现了该接口
资料
- https://blog.csdn.net/weixin_42266173/article/details/81749949
- https://studygolang.com/articles/27012?fr=sidebar 一篇文章理解 golang 中切片与数组的关系
- https://learnku.com/docs/effective-go/2020
最后
大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)
往期文章回顾:
算法
技术
- 浅谈微服务
- TCP性能优化
- 限流实现1
- Redis实现分布式锁
- Golang源码BUG追查
- 事务原子性、一致性、持久性的实现原理
- CDN请求过程详解
- 记博客服务被压垮的历程
- 常用缓存技巧
- 如何高效对接第三方支付
- Gin框架简洁版
- InnoDB锁与事务简析
读书笔记
思考