デフォルト引数を使って簡易メソッドを簡単に作る
複数引数を扱うメソッドの簡易メソッドをObjective-Cで用意するには
初めに Objective-C での事例を説明してから、Swift の話しに移った方が分かりやすいと思います。
Objective-C では以下の様にして、簡易メソッドの数だけメソッドを生やす必要がありました。
- (void)function { [self function:nil param2:nil]; } - (void)function:(id)param1 { [self function:param1 param2:nil]; } - (void)function:(id)param1 param2:(id)param2 { //肝心の処理 }
書くのも少し大変ですが、何よりコードを読む時に場合が大変です。
場合によっては、何度もジャンプをして肝心の処理が記述されているメソッドに
ようやくたどり着くなんてこともあります。
Swift におけるオプション引数
Swift では引数にデフォルト値を指定する事が出来ます。
デフォルト値を設定すると、その引数無しでその関数を実行してもエラーが起きないので
それだけで簡易メソッドとして扱う事が出来る様になりました。
以下を Playground などで実行してみると分かると思います。
func function(param1 : AnyObject? = nil, param2 : AnyObject? = nil) { if param1 != nil { println("param1") } if param2 != nil { println("param2") } } function() function(param1: 1) function(param1: 1, param2: 2)