&&=
在以下方法中的含義是什麼?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
&&=
在以下方法中的含義是什麼?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
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」。
這意味着如果result
的前一個值爲false
或nil
,則保留該值並跳過insert_record
調用,否則將值result
設置爲返回值insert_record
。
我不確定最後的代碼示例是否足夠清晰。你能用簡單的話來描述'&&'與'||'相對嗎? – Stefan
@斯特凡完成,thx。 – mudasobwa
'&&'和'||'都是邏輯運算符。二進制的是'&'和'|'。 – Stefan