2016-04-04 40 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 s至@Stefan用於supported operators shortcuts完整列表):

a = 5 
a += 5 
#⇒ 10 

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

&&邏輯和又名「conjunction」相對於||其爲邏輯或又名「disjunction」。

+2

我不確定最後的代碼示例是否足夠清晰。你能用簡單的話來描述'&&'與'||'相對嗎? – Stefan

+0

@斯特凡完成,thx。 – mudasobwa

+1

'&&'和'||'都是邏輯運算符。二進制的是'&'和'|'。 – Stefan

3

這意味着如果result的前一個值爲falsenil,則保留該值並跳過insert_record調用,否則將值result設置爲返回值insert_record