Efficient Go

Errata for Efficient Go

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
PDF Page xvi
Acknowledgments section, 3rd paragraph

Surname typo. It is "Juraj Michalak", should be "Juraj Michalek".

Bartlomiej Plotka  Dec 06, 2022 
Other Digital Version Chapter 4
Assembly Section

From reader (Victory) who found small bug: The command to get the assembly code for the Go code example `go tool objdump -s <binary>` is supposed to be `go tool objdump -S <binary>`.

Bartlomiej Płotka  Mar 23, 2023 
PDF Page 52
at the very bottom

In the numerous bullet point #1, it says:

> Variables a, b, and c are not used, so they cause a compilation error.

However, variable c is used for the initialization of variable d in example 2-7. As the code comment says, the variable not used here is d.

Yoshi Yamaguchi  Jan 11, 2023 
PDF Page 61
first bullet point in #3

> Use the value receiver (no func (g Group) SomeMethod()) if your method does not modify the Group state.

"No" just before `func` doesn't make sense here. I assume this should be "e.g." like what in the second bullet point. (i.e. this part is going to be "e.g. func (g Group) SomeMethod() )

Yoshi Yamaguchi  Jan 13, 2023 
PDF Page 66
2nd last paragraph

> Make sure you try writing your own basic Go program, write a unit test, and use loops, switches, and concurrency mechanisms like channels and routines.

The last word "routines" should be "goroutines".

Yoshi Yamaguchi  Jan 14, 2023 
PDF Page 101
footnote #16

> This is a quite powerful thought. For example, imagine you have your application returning a result in 10 m. Reducing it to 1 m by optimizing on one level (e.g., an algorithm) is a game changer.

Are these "m"s (i.e. 10m and 1m) meaning "millisecond" or "minute"?

Yoshi Yamaguchi  Jan 18, 2023 
PDF Page 124
the first paragraph (bullet point)

> -gcflags="-m=<number> builds the code while printing the main optimization decisions

I think the closing double quotation is missing; i.e. the option should be -gcflags="-m=<number>".

Yoshi Yamaguchi  Jan 22, 2023 
PDF Page 198
title of push-and-pull collection model description

Since the title of push and pull contradicts the description, they should be changed each other.

minha jeong  Jan 23, 2023 
PDF Page 279
Bullet point 3

> This means it will execute our benchmark once with b.N that equals 1 m only to assess a single iteration duration.

The word "m" in this sentence is not clear. I assume this "m" means "minute" in this context but I need the clarification.

Yoshi Yamaguchi  Feb 23, 2023 
PDF Page 294
2nd last paragraph

> e.g., in the description of the pull report

I think this is typo of "the pull request".

Yoshi Yamaguchi  Feb 24, 2023 
PDF Page 314
Last line before } in Example 8-20 snippet.

The code line have:

testutil.Ok(t, `e2einteractive.RunUntilEndpointHit()`)

However, the quotes are wrong here, it should be without quotes:

testutil.Ok(t, e2einteractive.RunUntilEndpointHit())

Bartłomiej Płotka  Nov 21, 2022 
PDF Page 374
4th paragraph

> even use the embedded `tool pprof` like a viewer to analyze them.

I assume the sentence should be "even use the embedded `go tool pprof` like a viewer to analyze them. I think "go" is dropped from the line.

Yoshi Yamaguchi  Mar 07, 2023