C#のと同じことをしてRubyの演算子はあります?オペレータ?
??オペレータは、オペランドがNULLでない場合は オペランドを返し、そうでない場合は が正しいオペランドを返します。
はhttp://msdn.microsoft.com/en-us/library/ms173224.aspx
C#のと同じことをしてRubyの演算子はあります?オペレータ?
??オペレータは、オペランドがNULLでない場合は オペランドを返し、そうでない場合は が正しいオペランドを返します。
はhttp://msdn.microsoft.com/en-us/library/ms173224.aspx
からオペレータの名前は、null-coalescing operatorあります。私がリンクしている元のブログ記事は、言語間のヌル合体の違いを取り上げたものです。 C#とRubyのヌル合体のより新しい比較はhereで見つけることができます。要するに
、あなたはのように、||
を使用することができます。
a_or_b = (a || b)
あなたが偽合体気にしない場合は、使用することができます||オペレータ:
a = b || c
偽が有効な値にすることができた場合は、あなたが行うことができます:
bはゼロのためにチェックされ、それがある場合、aはcの値が割り当てられ、場合a = b.nil? ? c : b
ない、b。
Rubyには、通常のヌル統合で具体的な機能があり、[]
または0
または0.0
になることに注意してください。
(x || []).each do |y|
:(
NilClass
がそれらを実装しているため)
代わりの
x = y || [] # or...
x = y || 0
は...あなただけの
x = y.to_a # => [] or ..
x = y.to_i # or .to_f, => 0
これは、のような特定の一般的なデザインパターンを作る...行うことができます
...少し見栄えがいいよ:
x.to_a.each do |y|
また、 '[* x] .each do | y |'と表示されることがよくあります。 –
リンクは現在停止しています。 – orourkedd
@orourkeddありがとう、私は新しいリンクでそれを少し修正しました。 –
これは実際には "偽の合体演算子"です。 – Kelvin