Ruby中的语法"&& ="

Lir*_*roy 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
Run Code Online (Sandbox Code Playgroud)

Ale*_*kin 7

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

a && a = b
Run Code Online (Sandbox Code Playgroud)

提供了运营商这个简短的形式(包括但不可能局限于)+,-,/,*,%,**,^,<<,>>,&,|,&&,||(学分@Stefan为完整列表支持运营商的快捷方式):

a = 5
a += 5
#? 10

a = true
a &&= true
#? true
a &&= false
#? false
Run Code Online (Sandbox Code Playgroud)

&&是一个逻辑和又名" 结合 ",而不是||这是逻辑的或又名" 析取 ".

  • 我不确定最后的代码示例是否足够清楚.你能用简单的词语描述`&&`与`||`相反吗? (2认同)
  • @Stefan肯定,为什么?啊,我猜"布尔和"(虽然不是"二进制")是误导.改变. (2认同)