相等和空检查(Ruby on Rails和c#)
我在RubyonRails中使用了相等和空检查(Ruby on Rails和c#),c#,ruby-on-rails,operators,null-coalescing-operator,C#,Ruby On Rails,Operators,Null Coalescing Operator,我在RubyonRails中使用了| |=操作符,我看到C有类似的东西 RubyonRails中的| |=是否等于C中的? 如果有的话有什么区别呢?简单的回答。。。是和否。 RubyonRails中的| |=运算符的目的是,如果左操作数不为null,则将其分配给自身,否则将其设置为右操作数。 在C#中,空合并运算符?执行与|124;=相同的检查,但它不用于赋值。它与a!=无效的a:b简单的答案。。。是和否。 RubyonRails中的| |=运算符的目的是,如果左操作数不为null,则将其分
| |=
操作符,我看到C有类似的东西
RubyonRails中的| |=
是否等于C中的?
如果有的话有什么区别呢?简单的回答。。。是和否。
RubyonRails中的
| |=
运算符的目的是,如果左操作数不为null,则将其分配给自身,否则将其设置为右操作数。
在C#中,空合并运算符
?
执行与|124;=
相同的检查,但它不用于赋值。它与a!=无效的a:b
简单的答案。。。是和否。
RubyonRails中的
| |=
运算符的目的是,如果左操作数不为null,则将其分配给自身,否则将其设置为右操作数。
在C#中,空合并运算符
?
执行与|124;=
相同的检查,但它不用于赋值。它与a!=无效的a:b
根据我读到的内容,x | |=y
操作符的工作方式如下:
这就是说,如果x
为nil
,false
或未定义,则将x
设置为y
。否则将其设置为x
(已修改、通用、添加格式)
另一方面,定义如下:
??
运算符称为空合并运算符。如果操作数不是null
,则返回左侧操作数;否则,它将返回右侧操作数
(已添加格式)
基于此,有两个重要区别:
??
不赋值,它就像一个三元运算符。结果可以赋值,但也可以用它做其他事情:例如,将它赋值给另一个变量,或者对它调用一个方法;及
??
仅检查null
(例如不检查false
),而|124;=
可用于nil
、false
和未定义的
但是我同意他们有一些“相似的目的”,尽管Ruby中的|
可能与??更相似,但它仍然违反了(2)
还请注意,空合并运算符的左侧部分不必是变量:on可以写入:
Foo() ?? 0
因此这里我们称之为Foo
方法。根据我所读的内容,x | |=y
操作符的工作原理如下:
这就是说,如果x
为nil
,false
或未定义,则将x
设置为y
。否则将其设置为x
(已修改、通用、添加格式)
另一方面,定义如下:
??
运算符称为空合并运算符。如果操作数不是null
,则返回左侧操作数;否则,它将返回右侧操作数
(已添加格式)
基于此,有两个重要区别:
??
不赋值,它就像一个三元运算符。结果可以赋值,但也可以用它做其他事情:例如,将它赋值给另一个变量,或者对它调用一个方法;及
??
仅检查null
(例如不检查false
),而|124;=
可用于nil
、false
和未定义的
但是我同意他们有一些“相似的目的”,尽管Ruby中的|
可能与??更相似,但它仍然违反了(2)
还请注意,空合并运算符的左侧部分不必是变量:on可以写入:
Foo() ?? 0
所以这里我们称之为Foo
方法。注意| |=
赋值(如果我理解正确的话)。然而,?
本身没有副作用:它就像一个三元运算符。请注意,| |=
赋值(如果我理解正确的话)。而?
本身没有副作用:它就像一个三元运算符。