デフォルトのパラメータで特定のコードのにおいがするのを見てきました。これは、メソッドのパラメーターの 1 つにデフォルト値が設定されているが、呼び出し元がnil
値を渡さずに渡す場合です。ほとんどの場合、これは呼び出し元がハッシュを持っていて、ハッシュから特定の値を渡そうとするためです。具体的には:
def foo(params)
...
bar(params[:first], params[:second]) # :second doesn't exist
end
def bar(first, second = 2)
end
2 番目のパラメータ tofoo
はデフォルト値ではなく になりnil
ます。これが処理されるのを私が見た最も一般的な方法は、関数バー内の最初の行が次のようになっていることです。
second ||= 2
これを処理するより良い方法はありますか?つまり、nil
param が渡されるか渡されない場合は常に、デフォルト値を割り当てます。