Skip to content

Latest commit

 

History

History
42 lines (38 loc) · 12 KB

File metadata and controls

42 lines (38 loc) · 12 KB

勘误表

由于作者能力有限,不可避免的会在书中出现各种错误。

本文记录了由读者发现的书中的一些错误,供大家参考,同时在后续可能的修订中会更正这些错误。

下表中打删除线的序号项表示是在某一版某次印刷时已修正的勘误,具体看该勘误项的状态一列。

序号 书名 位置 内容 提交者 错误类型 说明 状态
1 Go语言精进之路vol1 p84 “无论底层的数组元素类型有多大,切片打开的窗口有多长”这一句感觉不通顺 [email protected] 表达不清 改为“无论底层的数组元素是什么类型,切片打开的窗口有多大” 2022年8月第一版第2次印刷已改
2 Go语言精进之路vol1 p118 “string(b)用在map类型的key中”这句话下面的代码m[[3]string{string(b),"key1","key2"}]="value"好像有语法错误 [email protected] 语法错误 m[[3]string{string(b),"key1","key2"}]="value" 应该删除 2022年8月第一版第2次印刷已改
3 Go语言精进之路vol1 p383 type interface error 大鹏(github.com/Degfy) 语法错误 应改为 type error interface 2022年8月第一版第2次印刷已改
4 Go语言精进之路vol1 p227 type MyInterface I和type Mystruct T [email protected] 语法错误 应改为 type MyInterface= I和type Mystruct = T 2022年8月第一版第2次印刷已改
5 Go语言精进之路vol1 p36 图5-1中PEADME.md Yao-Shang Tseng(https://github.com/yakushou730) typo 应改为 README.md 2022年8月第一版第2次印刷已改
6 Go语言精进之路vol2 p165 图51-6中 非对称加密 中的“A的公钥”与“A的私钥”写反了 [email protected] typo 应将这两者调换一下 2023年1月第一版第2次印刷已改
7 Go语言精进之路vol1 p391 小结中“如果可以通过错误值类型的特征进行错误检视,那么尽量使用错误行为特征检视策略;在上述两种策略无法实施的情况下,再用“哨兵”策略和错误值类型检视策略” AVOlili(https://github.com/AVOlili) 表达不清 应改为:“如果可以通过错误行为特征进行错误检视,那么尽量使用错误行为特征检视策略;在上述两种策略无法实施的情况下,再用“哨兵”策略和错误值类型检视策略;” 2022年8月第一版第2次印刷已改
8 Go语言精进之路vol2(微信读书电子版) 第47条 和 第49条,具体参见issue6 html字符被转义了,影响阅读体验 AVOlili(https://github.com/AVOlili) 编辑错误 等待微信读书渠道编辑去掉转义,恢复html字符原貌 未改
9 Go语言精进之路vol1 p97 chapter3/sources/map_stable_iterate.go示例代码通过range map给切片赋值可能会给大家带去误解 feng zhao ([email protected]) 表达不清 这个例子中用切片保存是第一次map迭代的元素order。我的原意并非一定是按照1, 2, 3的顺序保存,只是要保证后续的iterate order都与第一次相同即可。只是在我的机器上第一次iterate的order恰好是 1,2,3的顺序。不过这个例子的确会给大家带去困惑。后续如果再版,会在这处做出说明 不改,再版时再改
10 Go语言精进之路vol1 p161 for_range_bench_test.go的输出结果与结论有悖 324127863([email protected]) 内容错误 for range数组性能好的原因与Go编译器根据数组元素大小进行的优化有关。可以参考一下这篇文章 不改,再版时再改
11 Go语言精进之路vol1 p103 示例代码有误,具体参见issue 9 liansyyy(https://github.com/liansyyy) typo 应改为 p := &m[key] 2022年8月第一版第2次印刷已改
12 Go语言精进之路vol1 p350 “如何s[n]T或*[n]T的数组类型,len(s)返回数组的长度n” bin4tre([email protected]) typo 应将“如何”改为 “如果” 2022年8月第一版第2次印刷已改
13 Go语言精进之路vol1 p352 trySend函数的default分支的返回语句拼写错误"etrun false" bin4tre([email protected]) typo 应改为 “return false” 2022年8月第一版第2次印刷已改
14 Go语言精进之路vol1 p62, 具体参见issue12 图8-1 变量声明语法错误 https://github.com/jackbai233 内容错误 图中a :=(int32)17应改为a := int32(17) 另一个var a = (int32)17应改为 var a = int32(17) 2022年8月第一版第2次印刷已改
15 Go语言精进之路vol1 p89, 具体参见issue13 slice_unbind_orig_array.go代码中数组u初始化有笔误 https://github.com/jackbai233 typo 书中代码u := []int{11, 12, 13, 14, 15} 应该为u := [...]int{11, 12, 13, 14, 15} 2022年8月第一版第2次印刷已改
16 Go语言精进之路vol1 p94, 具体参见issue14 map变量初始化有误 https://github.com/jackbai233 typo m := map[string]int应该为m := map[string]int{} 2023年10月第一版第3次印刷已改
17 Go语言精进之路vol1 p81, 具体参见issue16 Go 不存在 float 类型 https://github.com/XQ-Gang typo fnumbers := [...]float{}应改为fnumbers := [...]float64{},上面的注释中代码亦是 2022年8月第一版第2次印刷已改
18 Go语言精进之路vol1 p103, 具体参见issue17 关于Go不允许获取map中value的地址的示例代码错误 https://github.com/bravility typo p := m[key] 应该改为 p := &m[key] 2022年8月第一版第2次印刷已改
19 Go语言精进之路vol1 p49, 具体参见issue20 "小骆峰拼写法"的说法不常见 https://github.com/suica typo “小骆峰拼写法”应改为“小驼峰拼写法” 2022年8月第一版第2次印刷已改
20 Go语言精进之路vol1 p29, 具体参见issue21 "传递归递给下去"不通顺 https://github.com/suica typo 应改为“递归传递下去” 2022年8月第一版第2次印刷已改
21 Go语言精进之路vol1 p27, 具体参见issue22 素数定义不准确 https://github.com/suica 内容错误 素数定义中的“具有”应改为“仅有”,“除数”改为“因数” 2022年8月第一版第2次印刷已改
22 Go语言精进之路vol1 p27, p57 中的代码,具体参见issue22 代码的字体或许启用了连字, 两个字符合起来仅占用了一个字符的空间,并不是等宽的,阅读起来不够美观 https://github.com/suica 编辑错误 应关闭连字,使用等宽字体 2022年8月第一版第2次印刷已改
23 Go语言精进之路vol2 p66 中的第一段代码,具体参见issue23 示例代码中 b.RunParallel(...) 没有与之匹配的右括号,将造成错误 https://github.com/XQ-Gang typo 倒数第二行代码的}右侧应补充一个右小括号 2023年1月第一版第2次印刷已改
24 Go语言精进之路vol1 p34,具体参见issue24 "Go 1.13版本在src下面增加了go.mod和go.num"中的go.num 应改为go.sum https://github.com/banana42 typo go.num应该为go.sum 2022年8月第一版第2次印刷已改
25 Go语言精进之路vol2 P229 错别字问题 具体参见issue25 最下面一段,私钥可以看“出“数对,应为看“成” https://github.com/XQ-Gang typo 私钥可以看出数对 应改为 私钥可以看成数对 2023年1月第一版第2次印刷已改
26 Go语言精进之路vol1 p131 "mypkg1则指代的是chapter3-demo1/pkg/pkg1下面的包"中的路径有误 [email protected] typo "mypkg1则指代的是chapter3-demo1/pkg/pkg1下面的包"应该为"mypkg1则指代的是chapter3-demo2/pkg/pkg1下面的包" 2023年10月第一版第3次印刷已改
27 Go语言精进之路vol1 p298,具体参见issue27 这里简单的用 3600/3 = 1200 作为最终的最短耗时预期是不合理的 https://github.com/MrBear2018 内容错误 “效率应该会稳定在1200(3600/3)左右” 改为 “效率应该会稳定在1800(xRayCheckTmCost * 30 / 3)左右” 2023年10月第一版第3次印刷已改
28 Go语言精进之路vol1 p324,具体参见issue28 p324源码go-concurrency-pattern-5.go中的 worker goroutine在收到quit后并未立即退出 https://github.com/ptgeft 内容错误 p324源码go-concurrency-pattern-5.go中的源码quit <- "ok" 的下一行应增加return 源码库已改,2023年10月第一版第3次印刷已改
29 Go语言精进之路vol1 p50,具体参见issue30 命令中的idents找不到 https://github.com/huangxiangrongphper 内容错误 脚注中需要添加indents命令的仓库地址:https://github.com/bigwhite/go/tree/master/cmd/indents 源码库已改,2023年10月第一版第3次印刷已改
30 Go语言精进之路vol2 p79 p79页源码有typo,具体见issue32 bestgopher typo blockprofile代码中的pprof.Lookup("mutex")改为pprof.Lookup("block") 未改
31 Go语言精进之路vol1 p251 "这样,我们要判断两个接口类型变量是否相同,只需判断 _type/tab 是否相同以及 data 指针所指向的内存空间所存储的数据值是否相同" 表述不够准确 作者 内容错误 可改为 "这样,我们判断两个接口类型变量是否相等,只需判断_type/tab以及data是否都相等即可。两个接口变量的_type/tab不同时,即两个接口变量的动态类型不相同时,两个接口类型变量一定不等。当两个接口变量的_type/tab相同时,对data的相等判断要有区分。当接口变量的动态类型为指针类型时(*T),Go不会再额外分配内存存储指针值,而会将动态类型的指针值直接存入data字段中,这样data值的相等性决定了两个接口类型变量是否相等;当接口变量的动态类型为非指针类型(T)时,我们判断的将不是data指针的值是否相等,而是判断data指针指向的内存空间所存储的数据值是否相等,若相等,则两个接口类型变量相等" 2023年10月第一版第3次印刷已改
32 Go语言精进之路vol1 p306 spinningthreads的解释有误,具体见issue35 [hongkuancn]((https://github.com/hongkuancn) 内容错误 可改为 "spinningthreads:处于自旋(spin)状态的操作系统线程的数量。" 2023年10月第一版第3次印刷已改