对于想深入理解 Go 语言背后的设计哲学和实现细节的童鞋们,可以看过来

267 天前
 sztink

小弟写了一本关于 Go 语言的电子书:《深入 Go 语言之旅》,该书从 Go 语言源码出发,分析 Goroutine 调度流程,通道、上下文等的源码,以及 defer ,panic 等语言特性,希望能够帮助阅读此书的人更好的理解 Go 语言背后的设计哲学和实现细节。

《深入 Go 语言之旅》一共分为四大章节:《准备篇》、《基础篇》、《运行时篇》、《实践篇》,会持续不断更新中,有兴趣的同学可以移步阅读:《深入 Go 语言之旅》。写的不好之处,敬请海涵指正。目前四大章节更新的内容列表如下:

《准备篇》:

《基础篇》:

《运行时篇》:

3346 次点击
所在节点    Go 编程语言
23 条回复
aw2350
267 天前
点赞加收藏
oiken
267 天前
点赞加收藏+1
lasuar
267 天前
有些空章节:条件变量 - sync.Cond 、互斥锁 - sync.Mutex 、调度器、类型系统。。
Felldeadbird
267 天前
收藏了,有时间再认真阅读。
TimeDong
267 天前
点赞加收藏+2
wjx0912
267 天前
点赞加收藏
qloog
267 天前
必须 点赞加收藏
ShonStewart
267 天前
点赞加收藏,求一个 dark theme
thinkingbullet
267 天前
楼主 nb,点赞 收藏 666
Shazoo
267 天前
点赞+收藏。
lvlongxiang199
267 天前
瞎翻了下, 感觉没提到啥设计哲学. 比如可以说说以下问题. 如何实现是一个有意思的问题, 但在语言设计上选择要实现 X 这种特性而非 Y 特性也是个有意思的问题.
+ 为什么 go 没有 Java 中的异常机制, 出现异常的时候选择返回 err 而非抛出异常 ? 这是不是一个好的设计 ? 异常有啥问题
+ 为啥 go 没有一般意义上的继承 ? 如果没有继承, 如何实现多态 ? embedded struct 算不算继承 ? 一般意义上的继承又有啥问题 ?
+ channel 跟 Java 中 BlockingQueue 又有啥区别 ? 通过共享内存实现的并发跟通过 channel 实现的并发在哪种场景下更好 ?
+ 为啥 channel 会有 close 这个操作, 在哪些场景下会用到这个操作 ?

另外讲闭包的时候, 可以提下如何让函数实现一个接口.
randyzhang5201
267 天前
给大佬点赞
luke2sweet
267 天前
大佬厉害
seakee
267 天前
使用拼接符 + 进行拼接,这块需要更新一下,1.22 后 循环的每次迭代都会创建新变量, 所以地址会发生变化
guanzhangzhang
267 天前
给大佬点赞
sztink
267 天前
@lasuar 是的。这些内容还没弄完,后续搞完了会放出来。
sztink
267 天前
@lvlongxiang199 大佬呀👍🏻,你对 go 理解很深呀。 感谢给出建议。
capgrey
266 天前
写得太好了!!!
latiaoder214
266 天前
收藏了,膜拜大佬
codsddos
257 天前
好像教程链接挂了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1026708

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX