【问题标题】:what does question mark mean in these codes? [duplicate]这些代码中的问号是什么意思? [复制]
【发布时间】:2019-06-08 02:46:22
【问题描述】:

这些源码来自flutter教程

Widget _buildRow(WordPair pair) { final bool alreadySaved = _saved.contains(pair); 返回新的 ListTile( 标题:新文本( pair.asPascalCase, 风格:_biggerFont, ), trailing: new Icon( // 从这里添加行... 已经保存? Icons.favorite : Icons.favorite_border, 颜色:已经保存?颜色.red:空, ), // ... 到这里。 ); }

这部分是什么意思? trailing: new Icon( // 从这里添加行... 已经保存? Icons.favorite : Icons.favorite_border, 颜色:已经保存?颜色.red:空, ), // ... 到这里。 有人可以用相同的逻辑制作另一种形式的代码吗?这部分没看懂

【问题讨论】:

    标签: java android-studio kotlin flutter


    【解决方案1】:

    它是三元运算符(或short-if)。例如下面是等价的:

    if (COND) {
       X = A;
    } else {
       X = B;
    }
    
    X = COND ? A : B; // if COND condition is met, execute A, otherwise execute B
    

    看到这个article

    在您的示例中,如果变量alreadySaved 为真,则使用Icons.favorite 以及Colors.red。如果alreadySaved 为假,则Icons.favorite_bordernull 一起用于颜色。

    【讨论】:

      【解决方案2】:

      它是一个立即if,所以它基本上意味着if then分配第一个值,else(用':'标记)分配第二个值。

      简单示例:

      x = True? 1 : 2
      

      将分配 1

      x = False? 1: 2
      

      将分配 2 个

      另请参阅此问题: Java Equivalent to iif function

      【讨论】:

        猜你喜欢
        • 2017-08-21
        • 1970-01-01
        • 2012-03-14
        • 2014-01-10
        • 2018-07-07
        • 1970-01-01
        • 2016-10-13
        • 2014-01-05
        • 2011-08-26
        相关资源
        最近更新 更多