デフォルト引数
とあるソースを読んでいて、分らなかった書き方があったのでメモ。
分らなかったのは次のようなコード。仮引数の書き方が ?。
def foo(value = (not_set = true)) p value, not_set end
例示は理解の試金石、ということで幾つか試す。
foo # true # true foo 'iroha' # "iroha" # nil foo true # true # nil
引数が指定されていない場合は両方とも true。引数が指定されている場合は、value は指定した引数に、not_set は nil になる。value が true の場合、明示的に指定したのか、それともデフォルト値が設定されたのかを判定したいときに使う?
ちょっと使いどころが分らない...。そのソースを読んでもこの記法によるメリットがよく分らなかった。