重複の可能性:
C#?? Rubyの演算子?
C#と同じことをするRuby演算子はありますか?オペレーター?
?? _ 演算子は、nullでない場合は左側のオペランドを返し、そうでない場合は右側のオペランドを返します。
重複の可能性:
C#?? Rubyの演算子?
C#と同じことをするRuby演算子はありますか?オペレーター?
?? _ 演算子は、nullでない場合は左側のオペランドを返し、そうでない場合は右側のオペランドを返します。
falseの合体を気にしない場合は、||を使用できます。オペレーター:
a = b || c
falseが有効な値である可能性がある場合は、次のように実行できます。
a = b.nil? ? c : b
ここで、bはnilであるかどうかがチェックされ、そうである場合はaにcの値が割り当てられ、そうでない場合はbが割り当てられます。
Rubyには、[]
または0
またはへの通常のnull合体のための特定の機能があることに注意してください0.0
。
それ以外の
x = y || [] # or...
x = y || 0
...あなたは(NilClass
それらを実装するので)ただすることができます...
x = y.to_a # => [] or ..
x = y.to_i # or .to_f, => 0
これにより、次のような特定の一般的なデザインパターンが作成されます。
(x || []).each do |y|
...もう少し見栄えがします:
x.to_a.each do |y|