前回の記事
驚いたことまだまだ続く。
チュートリアル驚いたことをまた書きますね。
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も書けそう。
いい感じの備忘録になってる。気になったらあなたもチュートリアルへゴー!