Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.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 on Rails和c#)_C#_Ruby On Rails_Operators_Null Coalescing Operator - Fatal编程技术网

相等和空检查(Ruby on Rails和c#)

相等和空检查(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,则将其分

我在RubyonRails中使用了
| |=
操作符,我看到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
    方法。

    注意
    | |=
    赋值(如果我理解正确的话)。然而,
    本身没有副作用:它就像一个三元运算符。请注意,
    | |=
    赋值(如果我理解正确的话)。而
    本身没有副作用:它就像一个三元运算符。