勘误表

《Go 程序员面试笔试宝典》勘误表 #

请直接搜索对应的页面,如“第 255 页”,查看该页面的勘误内容。

第 V 页 #

  • typo 4.3 通道的底结构 -> 通道的底层结构。

第 9 页 #

  • 多了一个逗号
image
  • 少了一个括号
image

第 13 页 #

  • 调用 deferproc 函数
image

第 27 页 #

  • 形参是实参的一个复制
image

第 32 页 #

  • s/hamp/hmap
image

第 35 页 #

  • 返回 value 类型的零值
image

第 73 页 #

  • 示例代码和运行结果修正

示例代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
type Student struct {
	name string
	age  int
}

var s = Student{name: "qcrao", age: 18}
var g = &s

func modifyUser(pu *Student) {
	fmt.Println("modifyUser received value:", pu)
	pu.name = "Old Old qcrao"
	pu.age = 200
}

func printUser(u <-chan *Student) {
	time.Sleep(2 * time.Second)
	fmt.Println("printUser get:", <-u)
}

func main() {
	c := make(chan *Student, 5)
	c <- g
	fmt.Println(g)
	// modify g
	g = &Student{name: "Old qcrao", age: 100}
	go printUser(c)
	go modifyUser(g)
	time.Sleep(5 * time.Second)
	fmt.Println(g)
}

运行结果:

1
2
3
4
&{qcrao 18}
modifyUser received value: &{Old qcrao 100}
printUser get: &{qcrao 18}
&{Old Old qcrao 200}
  • 图中变量标注有误:
image

第 76 页 #

  • IsClosed 函数返回 false
image

第 89 页 #

  • 多余的“个”
image

第 112 页 #

  • 当 n==5 时,描述有问题
image

第 113 页 #

  • context 包代码结构功能表格描述有问题
image

第 131 页 #

  • 去掉多余的描述
image

第 141 页 #

  • 有关 interface 的章节说明有误
image

第 174 页 #

  • 图标注有误
image

第 186 页 #

  • 关于 M 的描述有误:
image

上面红框内的这两段话替换为:

Go 调度循环可以看成是一个“生产-消费”的流程。

生产端就是我们写的 go func()…语句,它会产生一个 goroutine。消费者是 M,所有的 M 都是在不断地执行调度循环:找到 runnable 的 goroutine 来运行,运行完了就去找下一个 goroutine……

P 的个数是固定的,它等于 GOMAXPROCS 个,进程启动的时候就会被全部创建出来。随着程序的运行,越来越多的 goroutine 会被创建出来。这时,M 也会随之被创建,用于执行 goroutine,M 的个数没有一定的规律,视 goroutine 情况而定。

第 191 页 #

  • memory 拼写错误
image

第 192 页 #

  • s/_Grunnale/_Grunnable
image

第 211 页 #

  • 图 12-19 m0 标识错误
image

第 235 页 #

  • notewakeup 唤醒
image

第 240 页 #

  • 12.14.1 小节中,“这时和P绑定的G正在进行系统调用,无法执行其他的G” 更改为 “这时和P绑定的M正在进行系统调用,无法执行其他的G”

第 255 页 #

  • 图 13-3 标识错误,如下图
image

第 258 页 #

  • 表 13-1 不同等级的浪费”下方算式错误
image

第 298 页 #

  • GC 时间降到 300us
image

第 306 页 #

  • 图 14-19 标识错误
image ---
最后更新:2022.09.26