前回の記事
willow710kut.hatenablog.com
驚いたことまだまだ続く。
A Tour of Go
チュートリアル驚いたことをまた書きますね。
ifの初期変数はif文内のみで使える。
if v := math.Pow(x, n); v < lim {
return v
} else {
fmt.Printf("%g >= %g\n", v, lim)
}
return v
最後のreturn v
は機能しません。
何気にこれ便利ね。一時的に使う変数のスコープの意識を、if文だけで完結出来るのは良い。
switchにbreakが必要ない
これはswiftも一緒ですね!まっすぐ下に下げたい時の記述はまた探しておきますね。
switch os := runtime.GOOS; os {
case "darwin":
fmt.Println("OS X.")
case "linux":
fmt.Println("Linux.")
default:
// freebsd, openbsd,
// plan9, windows...
fmt.Printf("%s.", os)
}
見やすい便利。
switchをif elseの代わりに使える
手法の一つですが、goはswitch trueのtrueを省略して書けるのです。
これだけだとピンときませんが、以下のプログラムはすっごく見やすい。
switch {
case t.Hour() < 12:
fmt.Println("Good morning!")
case t.Hour() < 17:
fmt.Println("Good afternoon.")
default:
fmt.Println("Good evening.")
}
phpとかなら
if (t.Hour() <12) {
printf("Good morning!");
} else if (t.Hour() <12) {
printf("Good afternoon.");
} else {
printf("Good evening.");
}
goの方が見やすい感じしますね。書きやすいですし。
goの記述、結構見やすいね。
ってことで、part4も書けそう。
いい感じの備忘録になってる。気になったらあなたもチュートリアルへゴー!