-
Notifications
You must be signed in to change notification settings - Fork 8
Eratta_1e_rev2
Akihiro Takizawa edited this page Jan 20, 2023
·
9 revisions
初版第2刷の正誤表です。第3刷で修正の予定です。
- 誤
- 実行時にif分を使って簡単にエラーの種別を
- 正
- 実行時にif文を使って簡単にエラーの種別を
- 誤
- 多値を返すことできます。
- 正
- 多値を返すことができます。
- 誤
- 以下のような型名と同名の変数を使うコードが書けてしまいます。型を変数に渡したり、関数に渡すことができません。型と変数で別々に名前空間が存在するため、型と変数は出会うことはなく、すれ違い続けます。同じ関数スコープの中でも変数とは名前が衝突しません。
- 正
- なお、型が定義されているのと別の名前空間(関数)内であれば、型名と同じ変数名も定義できます。他の言語では型は大文字スタート、変数は小文字スタートというルールが多く、同名を使うことは少ないのですが、「1.1.1 変数やパッケージ、メソッドなどに名前を付けるには」で触れたように、Goでは命名規則の都合で同名のものを使う機会がたまにあります。
誤
vs := url.Values{} vs.Add("key1", "value1") vs.Add("key2", "value2") for k, v := range vs { fmt.Printf("%s: %v\n", k, v) }
正
vs.Add("key1", "value1") vs.Add("key1", "value2") // 同じキー fmt.Printf("key1: %v\n", vs.Get("key1")) // Getメソッドだと最初の要素のみ for i, v := range vs["key1"] { // インデックスアクセスすると全値取得可能 fmt.Printf("key1[%d]: %v\n", i, v) }
- 誤
- 正
※ このコード例中、4つの type
宣言はすべて同様に func
の誤りです
誤
- 正
- 誤
- テーブルベーステストのテスト項目を
- 正
- テーブル駆動テストのテスト項目を
- 誤
- ファイルやネットワークからへの書き込み
- 正
- ファイルやネットワークへの書き込み
- 誤
Normalize(r, w)
- 正
Normalize(w, r)
- 誤
- 違う同じメソッド群を持つ別の型
- 正
- 同じメソッド群を持つ別の型
- 誤
- また、これまでGoの歴史の中では比較的変動が大きかった要素だったこともから
- 正
- また、これまでGoの歴史の中では比較的変動が大きかった要素だったことも
- 誤
- AモジュールがBモジュールをインポートしながら、BモジュールもAモジュールをインポートして
- 正
- AパッケージがBパッケージをインポートしながら、BパッケージもAパッケージをインポートして
- 誤
$ git push origin main --tag
- 正
$ git push origin main --tags
- 誤
- 内部的な処理ではreflrectパッケージを用いていており
- 正
- 内部的な処理ではreflectパッケージを用いており
- 誤
- Pupulation int 'csv:"人工"'
- 正
- Pupulation int 'csv:"人口"'
- 誤
- AWS DynamoDB
- 正
- Amazon DynamoDB
※p217 下から9行目も同様
※ 紙面に掲載しているコードにトランザクションの問題があることが分かりました。下記のコードをアップデートしていますので、ご査収ください
- 誤
- マルチプレクサHTTPサーバーをとして起動させるには
- 正
- マルチプレクサHTTPサーバーとして起動させるには
- 誤
-
- ::
- case "Message": out = append(out, fmt.Sprintf("Messageは1 ~ 140文字です")) case "UserName": out = append(out, fmt.Sprintf("Messageは1 ~ 15文字です"))
- 正
-
- ::
- case "Message": out = append(out, "Messageは1 ~ 140文字です") case "UserName": out = append(out, "UserNameは1 ~ 15文字です")
- 誤
-
:: func (lrw *loggingResponseWriter) Write(b []byte) (int, error) {
- if statusCode >= 400 {
- log.Printf("Response Body: %s", b)
} return lrw.ResponseWriter.Write(b)
}
- 正
-
:: func (lrw *loggingResponseWriter) Write(b []byte) (int, error) {
- if lrw.statusCode >= 400 {
- log.Printf("Response Body: %s", b)
} return lrw.ResponseWriter.Write(b)
}
- 誤
- 以下のコマンドでで自動生成のプロジェクトページが実行されます。
- 正
- 以下のコマンドで自動生成のプロジェクトページが実行されます。
- 誤
- ログはサービスを運用する上では須といえますが
- 正
- ログはサービスを運用する上では必須といえますが
- 誤
- 致命的なエラー。プログラムの以上終了をともなう
- 正
- 致命的なエラー。プログラムの異常終了をともなう
- 誤
T.Run()
- 正
t.Run()
※2か所あります
- 誤
golang:1.x-slim-bullseye
- 正
debian:slim-bullseye
- 誤
- 言語のコアに組み込まれおり
- 正
- 言語のコアに組み込まれており
- 誤
-
FakeFuturePromise()
を呼ぶと - 正
-
MakeFuturePromise()
を呼ぶと
- 誤
正 .. code:
type contextKey struct{} var tokenContextKey contextKey = struct{}{}
- 誤
- 実行ファイルでもライブラリでもまずは次のコマンドをたいて
- 正
- 実行ファイルでもライブラリでもまずは次のコマンドをたたいて
- 誤
- // 存在しない要素にアクセスするとゼロ値 fmt.Println(hs[0]) // panic
- 正
- // 存在しない要素にアクセスするとゼロ値 fmt.Println(hs[0]) // 空文字列
- 誤
//1変数だけ書けばインデックス飲みを受け取れる
- 正
//1変数だけ書けばインデックスのみを受け取れる