逻辑运算符的返回值 -- Ruby

2016-06-30  本文已影响0人  spike15
name = Foo || "Bar"

逻辑运算符在编程中再常见不过, 但是上面这段ruby代码是给name判断真伪呢?还是给name赋值呢?

基本概念

A || B: A B之中只要有一个是真, 表达式则为真。
A && B: A B都为真, 表达式才为真。

我经常会用逻辑运算符来简化条件判断

//php代码
if (A) {
    if (B) {
        echo "foo";
    }
}

//使用逻辑运算符

if (A && B) {
   echo "foo"; 
}

返回值

要知道开头那段代码的答案, 就要先了解逻辑运算符的返回值

在php中, 逻辑运算符返回的是boolean

>>> "123" || "abc"
=> true

但是在ruby中, 当判断为真时, 逻辑运算符返回的则是表达式的值

2.3.0 :001 > "123" || "abc"
 => "123"

对于||来说, ruby会按照从左到右的顺序, 返回第一个为真的表达式的值

其实在js, 和python中, 与ruby一样也是返回表达式的值

//js
"123" || "abc"
> "123"
//python
>>> "123" || "abc"
'123'

运用逻辑运算符赋值

name = Foo || "Bar"
name = "Bar"
name = Foo if Foo

上面的这段代码就是给name赋值, 上面的两段代码是等价的

上一篇下一篇

猜你喜欢

热点阅读