Ruby中的语法"&& ="

时间:2016-04-04 07:28:46

标签: 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

2 个答案:

答案 0 :(得分:7)

a &&= b是一种简短形式(又名语法糖):

a && a = b

此简短表格适用于运营商(包括但不限于)+-/*%,{{ 1}},**^<<>>&|&&(@Stefan的积分有关supported operators shortcuts)的完整列表:

||

a = 5 a += 5 #⇒ 10 a = true a &&= true #⇒ true a &&= false #⇒ false 是一个逻辑又名“conjunction”而不是&& 逻辑或又名“{{} 3}}“。

答案 1 :(得分:3)

这意味着如果result的先前值为falsenil,则保留并跳过insert_record次调用,否则设置result的值} {返回值insert_record