2016-04-04 5 views
5

&&=の意味は次のとおりですか?Rubyの文法 "&& ="

records.each do |record| 
    raise_on_type_mismatch!(record) 
    add_to_target(record) do |rec| 
    result &&= insert_record(rec, true, should_raise) unless owner. 
     new_record? 
    end 
end 

答えて

7

a &&= b短い形式(別名構文糖)であるため:

a && a = b 

この短い形は+-/*%(におそらく限定されるものではない)オペレータのために提供され、**,^,<<,>>,&,|,&&,||(credit supported operators shortcutsの完全なリストについては、@Stefan秒):別名論理的またはある||とは対照的に、

a = 5 
a += 5 
#⇒ 10 

a = true 
a &&= true 
#⇒ true 
a &&= false 
#⇒ false 

&&は「conjunction」別名論理ある

+2

最後のコード例が十分明確であるかどうかはわかりません。 '||'とは対照的に、 '&&'は何をしているのかを簡単に説明できますか? – Stefan

+0

@スティファン完了、thx。 – mudasobwa

+1

'&&'と '||'はどちらも論理演算子です。バイナリは '&'と '|'です。 – Stefan

3

それは意味「disjunction。」 resultの前の値がfalseまたはnilの場合は、それを保持してさらにinsert_recordの呼び出しをスキップし、それ以外の場合はresultの値をの戻り値に設定します0。