3
2

More than 3 years have passed since last update.

関数定義で使用される"_"について

Posted at

"_"は何のため?

swiftのプログラムを見ていると、たまに関数の引数名の左に"_"(アンダースコア)が書いてあるときがあります。

howToUseUnderscore
func howToUseUnderscore(_ number1: Int, _ number2: Int) {
    print(number1 + number2)
}

引数名number1とnumber2の左に書かれている"_"は何を意味するのでしょうか、、、

"_"で引数名を省略できる!

関数定義のとき、"_"を引数名の左に書くことで、関数を呼び出す際に引数名の記載を省略することができます。

  • "_"を書かないとき
howToUseUnderscore
func howToUseUnderscore(number1: Int, number2: Int) {
    print(number1 + number2)
}

howToUseUnderscore(number1: 1, number2: 2)    // -> 3
  • "_"を書いたとき
howToUseUnderscore
func howToUseUnderscore(_ number1: Int, _ number2: Int) {
    print(number1 + number2)
}

howToUseUnderscore(1, 2)    // -> 3

ちなみに、、、

"_"を書いているのに、関数を呼び出す際に引数名を記載するとエラーが起こります。
"_"は関数を呼び出す際、「引数名を書かなくて良い」では無く、「引数名を書かない(書いてはいけない)」という意味のようです。

howToUseUnderscore
func howToUseUnderscore(_ number1: Int, _ number2: Int) {
    print(number1 + number2)
}

howToUseUnderscore(number1: 1, number2: 2)    // -> エラー!!
参考サイト
3
2
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
3
2