Go日記: 『Learning Go: An Idiomatic Approach to Real-World Go Programming (English Edition)』試し読み
Kindle で Bodner, Jon (2021-03-02). 『Learning Go: An Idiomatic Approach to Real-World Go Programming (English Edition) 』 O'Reilly Media. Kindle 版. を試し読みした。
The Go Playground に読みながら試したコードを貼っておく。
package main
import (
"fmt"
)
func main() {
aboutConst()
aboutSlice()
}
func aboutConst() {
// Enum
const (
A int = iota
B
C
)
fmt.Println(C) // 2
const untypedX = 10 // untyped constant
var floatF float64 = untypedX
var intI int = untypedX
var byteB byte = untypedX
fmt.Println(floatF, intI, byteB) // 10 10 10
}
func aboutSlice() {
slice := make([]int, 5)
slice = append(slice, 99)
fmt.Println(slice) // [0 0 0 0 0 99] intのゼロ値で初期化された5要素のスライスに99が6番目として付け足される
s := make([]int, 0) // 長さ0のスライス
s = append(s, 10)
s = append(s, 20)
fmt.Println(s) // [10 20]
s = append(s, slice...) // s + slice
fmt.Println(s) // [10 20 0 0 0 0 0 99]
x := []int{} // This creates a zero-length slice(not nil)
fmt.Println(x) // []
x = append(x, s...)
fmt.Println(x) // [10 20 0 0 0 0 0 99]
}
タイトル通り「Idiomatic な Go」を伝授しようという姿勢が一貫している。Go の初心者が実際に Go でなにか作ってみよう、仕事に活かそう、と思うときに参考になる知恵が満載な印象だ。「Go だったらこう書くよね」を教えてくれる。「ここでこういう書き方をするのは、こういう背景があるからなんだよ」というのもちゃんと書いてある。変にごまかさない書き方はとても好きだなぁ。個人的に「おまじない」という表現が大嫌いだし、「こうするもんだからとにかく覚えて(=従って!)」と言われるとモチベがゼロ値に戻る。メモリ・アロケーションやランタイムの仕組みなど、そういう若干込み入った事情の話が出てきてくれて構わないので、なぜそうなのかをしっかり説明してほしい。「歴史的経緯でそうなんだよ」という場合には、しっかりその歴史を説明してほしい。読むのが苦ではないので、ちゃんと書いてある本が好きだ。で、(試し読みしかしてないけど)この本はそういう「ちゃんとした」部類の本だと思う。(買お。)
SN
関連リポジトリ
この記事が気に入ったらサポートをしてみませんか?