Swiftではワイルドカードの _ (アンダーバー)が使える。
けっこういろんな使い方ができるけど、そんなかでいくつか紹介する。
関数の返り値が要らないので破棄する
1 2 3 4 5 6 7 8 9 |
func printAndGetPlus(x: Int, y: Int) -> Int { print(x + y) return x + y } // 返り値を破棄する _ = printAndGetPlus(x: 4, y: 13) // エラー // print(_) |
たとえばこんな関数があって、printだけ必要でgetが必要なかったら _(ワイルドカード) に代入すれば良い。(printでも使えない
ただし、今は代入なしでもエラーにならないぽい(前からそだったっけ?覚えてない
for in文でループ変数が要らないのでワイルドカードにする
1 2 3 |
for _ in 1...3 { print("home") // hoge hoge hoge } |
こんな感じでループ変数を中で使わない場合はこう書けばエラーにならない。
外部引数名をワイルドカードにする
1 2 3 4 5 6 7 8 9 10 11 12 13 |
func printTwoNumSum(x: Int, y: Int) { print(x + y) } printTwoNumSum(x: 4, y: 13) // 17 // 上の関数の外部引数名をワイルドカードにする func printTwoNumSum(x: Int, _ y: Int) { print(x + y) } // 引数名を省略できる printTwoNumSum(x: 4, y: 13) // 17 |
同じ処理をする2つの関数だけど、外部引数名にワイルドカードを指定することによって、呼び出し側は引数名を明示的に指定しなくても良い。
今回のように2つの数字を足すだけのメソッドとかだとこんな書き方もできるが、基本的にはしっかりと命名してあげることが推奨されている。
まだいろいろあるんだけど、使いそうなところはこれくらいかなと思う。
むしろ、ワイルドカードはそこまで積極的に使っていくものではないと思うので使いドコロには注意しよう。