エンジニアのひよこ_level10

【毎日更新!】新卒2年目エンジニアブログです! プログラムだけじゃなく、マネジメントとかも書いていきたい!

golangのチュートリアル始めて衝撃的だったこと3つpart3【134日目】

前回の記事

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も書けそう。

いい感じの備忘録になってる。気になったらあなたもチュートリアルへゴー!