【Swift】外部引数名を使って関数の呼び出しをイメージしやすくする。(Swift 2.1、XCode 7.2)

2020年6月16日

外部引数名とは

外部引数名とは、関数を呼び出すときの引数名に必ず名前をつけさせる方法である。

通常、関数を呼び出すときは以下のコードのように、第1引数に「値のみ」、第2引数以降には「変数名と値」を与える。第1引数には引数名はつけたら駄目で、第2引数以降は引数名をつけなければならないという使い方には違和感があり、しっくりこない。そこで利用されるのが外部引数名である。

 

外部引数名の定義方法

以下のコードのように外部引数名は引数名の前に記述する。外部引数名を付けると、関数を呼び出すときに全ての引数に外部引数名をつけなければならなくなる。統一感があってしっくりくる。

 

外部引数名と引数名が同じときに「city city」のように引数名を2つ書かなくてもいいように、「#引数名」と書いて1つで外部引数名と引数名を表す方法があった。Swift 2.1.1で使ってみたところ「’#’ has been removed from Swift; double up 'city city’ to make the argument label the same as the parameter name」というエラーが発生した。

どうやら使えなくなったようだ。

kansu_double_up_error

 

外部引数名と引数名を同じにする場合、以下のコードのように第1引数にだけ同じ引数名を2回記述する。

 

逆に、関数呼び出し時の引数に引数名をつけたくない場合もある。むしろそっちの人の方が多いような気もする。そのようなときは、関数定義の引数名の前に「_ 」(アンダースコアと半角スペース)を付けると、関数を呼び出すときに引数名をつけることが出来なくなる。