Errata

Learning Go

Errata for Learning 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
Other Digital Version Chapter 4, section "The Complete for Statement"
3rd Paragraph

"The if statement has three parts, separated by semicolons." It should be "The for statement has three parts, separated by semicolons."

Anonymous  Apr 27, 2024 
Page 1
Table of contents

Entire table of contents is wrong online version.

Note from the Author or Editor:
Can you be more clear? I have clicked through the table of contents online and it seems to be correct, although sometimes it doesn't scroll to quite the right spot.

Stan  Jul 18, 2021 
PDF Page 3
3rd Paragraph

setx GOPATH %USERPROFILE%\go
setx path "%path%;%USERPROFILE%\bin"

In the second line, the correct line should be like this:
setx path "%path%;%GOPATH%\bin

Anonymous  Feb 05, 2024 
PDF Page 28
linting concept in the page

Dear Sir,

The book OREILLY Learning Go really helped me in learning the concepts, but I found the tool go lint is deprecated in the beginning of 2021 and it needs corrections in the next edition of Learning Go book. remove the complete concept on go lint mentioned in this book as it will not work on existing code. reference page number - 28 and 29 some lines of the book.
sending these details so that it will help the author for further corrections. :)

reference link - https://pkg.go.dev/golang.org/x/lint#section-readme

VIVEK S  Jun 14, 2022 
PDF Page 76
Note in the bottom

You use the word "compound types" in chapters 4, 7, 15, and 16, and you use the word "composite types" in chapters 2 and 3.

"The Go Programming Language Specification" (go.dev/ref/spec) uses the word "composite types" but does not use the word "compound types."

I imagine you use the words interchangeably.
I think it is better NOT to use the word "compound types" in the book.
It is confusing. Especially, non-native English speakers (like me) might think that "composite types" and "compound types" are different.

Anonymous  May 13, 2024 
152
3rd paragraph

The text mentions an interface but the code uses a different one. Here the text mentions io.Writer implements io.WriterTo and io.Reader implements io.ReaderFrom. But the code uses the other way around. src which is an instance of io.Reader is checked for WriterTo and dst which is an instance of io.Writer is checked for ReaderFrom.

"This function has two parameters of types io.Writer
and io.Reader and calls the io.copyBuffer function to do its work. If the io.Writer
parameter also implements io.WriterTo, or the io.Reader parameter also implements
io.ReaderFrom, most of the work in the function can be skipped:"
func copyBuffer(dst Writer, src Reader, buf []byte) (written int64, err error) {
// If the reader has a WriteTo method, use it to do the copy.
// Avoids an allocation and a copy.
if wt, ok := src.(WriterTo); ok {
return wt.WriteTo(dst)
}
// Similarly, if the writer has a ReadFrom method, use it to do the copy.
if rt, ok := dst.(ReaderFrom); ok {
return rt.ReadFrom(src)
}

Anonymous  Jun 03, 2022