这些代码中的问号是啥意思? [复制]

Posted

技术标签:

【中文标题】这些代码中的问号是啥意思? [复制]【英文标题】: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:空, ), // ... 到这里。 有人可以用相同的逻辑制作另一种形式的代码吗?这部分没看懂

【问题讨论】:

【参考方案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

【讨论】:

以上是关于这些代码中的问号是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

“类型”是啥意思,ECMA 6 中的问号有啥特殊用途吗?

chrome方框问号是啥

VSCode——VScode提供的代码格式中问号是啥意思

$var?中bash变量参数扩展中的问号是啥意思?

三元从句中连续两个问号是啥意思?

Ruby问号运算符,这是啥意思? [复制]