Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby语法&&=&引用;_Ruby - Fatal编程技术网

Ruby语法&&=&引用;

Ruby语法&&=&引用;,ruby,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是一个缩写形式(又称语法糖),用于: 此简短表格适用于操作员(包括

以下方法中的
&&=
是什么意思

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
是一个缩写形式(又称语法糖),用于:

此简短表格适用于操作员(包括但不限于)
+
-
/
*
%
**
^
&
(有关以下内容的完整列表,请归功于@Stefan):


&
是一个逻辑andaka“,而
|
逻辑andaka”。

这意味着如果
结果的上一个值
为false
为nil
,则保留它并进一步跳过
插入记录
调用,否则,将
result
的值设置为
insert\u record
的返回值

我不确定末尾的代码示例是否足够清晰。你能简单地描述一下
&
|
的区别吗?
&&
|
都是逻辑运算符。二进制的是
&
|
@Stefan当然,为什么?啊,我猜“布尔和”(不是“二进制”)是误导。改变了。实际上,
a&&=b
a&&a=b
的缩写,而
a||=b
a|a=b
的缩写,就像他在回答中暗示的@Aetherus。@Silverphone确实如此。谢谢
a && a = b
a = 5
a += 5
#⇒ 10

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