
小弟写了一本关于 Go 语言的电子书:《深入 Go 语言之旅》,该书从 Go 语言源码出发,分析 Goroutine 调度流程,通道、上下文等的源码,以及 defer ,panic 等语言特性,希望能够帮助阅读此书的人更好的理解 Go 语言背后的设计哲学和实现细节。
《深入 Go 语言之旅》一共分为四大章节:《准备篇》、《基础篇》、《运行时篇》、《实践篇》,会持续不断更新中,有兴趣的同学可以移步阅读:《深入 Go 语言之旅》。写的不好之处,敬请海涵指正。目前四大章节更新的内容列表如下:
《准备篇》:
《基础篇》:
《运行时篇》:
1 aw2350 2024-03-25 11:36:05 +08:00 点赞加收藏 |
2 oiken 2024-03-25 11:38:57 +08:00 点赞加收藏+1 |
3 lasuar 2024-03-25 12:26:39 +08:00 有些空章节:条件变量 - sync.Cond 、互斥锁 - sync.Mutex 、调度器、类型系统。。 |
4 Felldeadbird 2024-03-25 13:17:02 +08:00 收藏了,有时间再认真阅读。 |
5 TimeDong 2024-03-25 13:32:32 +08:00 点赞加收藏+2 |
6 datadump 2024-03-25 13:39:14 +08:00 点赞加收藏 |
7 qloog 2024-03-25 13:54:13 +08:00 必须 点赞加收藏 |
8 ShonStewart 2024-03-25 13:57:09 +08:00 点赞加收藏,求一个 dark theme |
9 thinkingbullet 2024-03-25 14:00:13 +08:00 楼主 nb,点赞 收藏 666 |
10 Shazoo 2024-03-25 14:14:00 +08:00 点赞+收藏。 |
11 lvlongxiang199 2024-03-25 14:25:25 +08:00 瞎翻了下, 感觉没提到啥设计哲学. 比如可以说说以下问题. 如何实现是一个有意思的问题, 但在语言设计上选择要实现 X 这种特性而非 Y 特性也是个有意思的问题. + 为什么 go 没有 Java 中的异常机制, 出现异常的时候选择返回 err 而非抛出异常 ? 这是不是一个好的设计 ? 异常有啥问题 + 为啥 go 没有一般意义上的继承 ? 如果没有继承, 如何实现多态 ? embedded struct 算不算继承 ? 一般意义上的继承又有啥问题 ? + channel 跟 Java 中 BlockigQueue 又有啥区别 ? 通过共享内存实现的并发跟通过 channel 实现的并发在哪种场景下更好 ? + 为啥 channel 会有 close 这个操作, 在哪些场景下会用到这个操作 ? 另外讲闭包的时候, 可以提下如何让函数实现一个接口. |
12 randyzhang5201 2024-03-25 14:35:43 +08:00 给大佬点赞 |
13 luke2sweet 2024-03-25 14:49:05 +08:00 大佬厉害 |
14 seakee 2024-03-25 15:13:56 +08:00 使用拼接符 + 进行拼接,这块需要更新一下,1.22 后 循环的每次迭代都会创建新变量, 所以地址会发生变化 |
15 guanzhangzhang 2024-03-25 16:45:52 +08:00 给大佬点赞 |
17 sztink OP @lvlongxiang199 大佬呀,你对 go 理解很深呀。 感谢给出建议。 |
18 capgrey 2024-03-26 11:24:09 +08:00 写得太好了!!! |
19 latiaoder214 2024-03-26 15:29:16 +08:00 收藏了,膜拜大佬 |
20 codsddos 2024-04-04 08:45:40 +08:00 好像教程链接挂了 |
22 jeffmingup 2024-04-19 13:55:02 +08:00 @lvlongxiang199 问了下 chatgpt ,大佬觉得回答的咋样 https://chat.openai.com/share/58fe8bbf-6c0d-4710-9eb8-3430ba9ccede |
23 pppwww 2024-05-16 14:13:45 +08:00 先收藏再看 |
24 erriTian 291 天前 25/2/12 go.cyub.vip 这个网站访问不到了 |