美文网首页
逻辑运算符的返回值 -- Ruby

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

作者: spike15 | 来源:发表于2016-06-30 09:55 被阅读0次
    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赋值, 上面的两段代码是等价的

    相关文章

      网友评论

          本文标题:逻辑运算符的返回值 -- Ruby

          本文链接:https://www.haomeiwen.com/subject/uugxjttx.html