LoginSignup
42
23

More than 5 years have passed since last update.

アンダースコア変数について

Last updated at Posted at 2017-07-01

_とは、宣言はするけれども後で使わない変数

というような理解でいいと思う。

  • arrayの中身だけ表示したいがインデックスは表示しなくてもいい、みたいな場合を想定する。
numbers := []int{20, 30, 40}
for _, n := range numbers {
  fmt.Println(n)
}
  • このコードを実行すると20, 30, 40が得られる。
  • このとき、インデックスは使わないから_を使う。
  • では、このfor文から_を消して実行したらどうなるだろう?
numbers := []int{20, 30, 40}
for n := range numbers {
  fmt.Println(n)
}
  • 0 1 2が出力される。
  • nがインデックスになってしまった。
  • じゃあ_iなどの普通の変数に変えたらどうなるか?
numbers := []int{20, 30, 40}
for i, n := range numbers {
  fmt.Println(n)
}
  • おそらく使っているエディタのシンタックスチェックがエラーを吐く。
  • 無理やり実行するとi declared and not usedなどのエラーがでる。

GO言語では一度宣言した変数を使わなかったら怒られる。厳格ですね。

42
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
42
23