A Tour of Goを読んで「へ〜」と思ったところ その2
第2回目。
whileっぽく書ける
;
を省略して書くことでwhile
っぽく書ける。
sum := 1
for sum < 1000 {
sum += sum
}
fmt.Println(sum)
すごくシンプル。
無限ループはこう書くらしい。
for {
}
if文の省略形
SwiftのOptional Bindingに似たような書き方ができる。
if v = math.Pow(x, n); v < lim {
return v
}
上記のv
はif文の中でしか使えない。便利な書き方だなぁ。条件を連続して書けるのも良い。
条件のないswitch
条件なしのswitch
を用いて冗長なif-then-else
を書かないようにしよう、と書いている。これは激しく同意。
switch {
case t.Hour() < 12:
fmt.Println("Good morning")
case t.Hour() < 17:
fmt.Println("Good afternoon")
default:
fmt.Println("Good evening")
}
網羅的で条件がひと目で分かる。if-else
よりも圧倒的に見やすい。
Swiftも同じ書き方ができるけど、条件がtrue/false
の時はif文、3つ以上の条件がある場合はswitch
みたいな使い分けをしている。
defer
はスタックされる
多分他の言語でもそうだけど、忘れそうなので書いておこう。
func main() {
fmt.Println("counting")
for i := 0; i < 10; i++ {
defer fmt.Println(i)
}
fmt.Println("done")
}
// counting
// done
// 9
// 8
// 7
// 6
// 5
// 4
// 3
// 2
// 1
// 0
きょうはここまで。次は型の章なのかな?