外部引数名の指定と省略

シェアする

S 2016 06 01 13 50 56

Swiftでは関数やインスタンスメソッドにパラメータを渡す際、引数名を指定して呼び出すことが可能となっています。

引数が何を意味しているのか明示できるため、多数の引数をとる関数を使う際は便利な機能ですが、引数名を省略可能な場面、そうでない場面があり条件が複雑化しています。

ここではイニシャライザ、関数それぞれの場合に関して、外部引数名の指定方法、省略方法を解説します。

イニシャライザ

外部引数名を明示的に指定したイニシャライザ

「外部引数名 内部引数名: 型」という形式で引数を定義した場合、呼び出し側でもその外部引数名を使ってイニシャライザを呼び出す必要があります。

外部引数名を省略したイニシャライザ

外部引数名として「_」アンダーバーを指定すると、呼び出し側で外部引数名を省略することができます。

内部引数名を外部引数名としたイニシャライザ

外部引数名を指定せず、他のプログラミング言語のように「内部引数名: 型」を引数に指定したした場合、その内部引数名を指定してイニシャライザを呼び出す必要があります。

関数

外部引数名を明示的に指定した関数

外部引数名を明示した場合、呼び出し側でもその外部引数名を指定して関数を呼び出す必要があります。

外部引数名を省略した関数

関数の場合第1引数は明示的に外部引数名を指定しない限り、呼び出し時の指定が省略されます。第2引数以降は「_」アンダーバーを指定すると、呼び出し側で外部引数名を省略することができます。

内部引数名を外部引数名とした関数

「内部引数名: 型」を引数に指定したした場合、呼び出し側で第1引数は省略する必要がありますが、第2引数以降は内部引数名を指定して呼び出す必要があります。

まとめ

Swiftの引数の省略・指定の方法はObjective-Cとの相互運用を想定してか、かなり面倒なものとなっています。今回の説明はSwift 2.2をしていますが、Swiftのバージョンアップによって変更される可能性もあります。

スポンサーリンク
レクタングル(大)広告
レクタングル(大)広告

シェアする

フォローする