• Lua 中的条件表达式


      下面这代码段看上去很熟悉,就是C#里面的条件表达式,很多其它语言也都有这么一个条件表达式。

            int a = 1;
            int b = 2;
            string c = "c";
            string d = "d";
    
            string e = a > b ? c : d;
            print(e);    

    上面代码的输出结果为 : d

      那么Lua里面有没有条件表达式呢?没有。但可以模拟。请看下面代码段:

    a =1
    b =2
    c = "c"
    d = "d"
    
    e = (a > b and c) or d
    print (e)

    没错,上面这段代码输出也是:d

    这不是偶然的。稍作分析:

    当a > b 为false , (a > b and c)就不用执行了(短路原则),值为false;那么 false or d  的结果就是d了。

    当a > b 为ture , true and c 的值为c ,c or  d 结果为c。

    可能有人要问了,那如果c是布尔型呢?恭喜你,牛角尖钻对了

    如果c = false ,那么不管a和b的关系怎么样,结果都是d,因为(a > b and c)始终为false,而上面说了false or d  的结果就是d了;那c = true呢?嗯,没问题的。

  • 相关阅读:
    liststyle
    :nthchild(n)
    织梦CMS首页调用分类信息栏目及列表方法
    []织梦CMS首页调用分类信息栏目及列表方法
    ps快捷键
    系统架构博客,很不错
    google maps api 反向解析 地址 api
    sphinx
    sphinx discuss
    ruby分词
  • 原文地址:https://www.cnblogs.com/yougoo/p/7349182.html
Copyright © 2020-2023  润新知