ブックマーク / gist.github.com/evalphobia (1)

  • Go言語の地雷(原題: Golang landmines)

    The Three Go Landmines.ja.markdown Goでよくやってしまうミスが3つあります。 私はそのミスを、分かりやすいように簡略した書き方ではなく、巷でよく見かける書き方のままここで説明します。 3つのミスの全てが、私の知る限り少なくとも1回づつ、Kubernetesの過去のコードレビューにありました。 1: ループ変数がループ外のスコープになっている この各行はいったい何を行っているのでしょうか。想像してから下へスクロールしてください。 func print(pi *int) { fmt.Println(*pi) } for i := 0; i < 10; i++ { defer fmt.Println(i) defer func(){ fmt.Println(i) }() defer func(i int){ fmt.Println(i) }(i) defer

    Go言語の地雷(原題: Golang landmines)
    hayajo_77
    hayajo_77 2019/02/05
  • 1