这些代码中的问号是啥意思? [复制]
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_border
与null
一起用于颜色。
【讨论】:
【参考方案2】:它是一个立即if,所以它基本上意味着if then分配第一个值,else(用':'标记)分配第二个值。
简单示例:
x = True? 1 : 2
将分配 1
x = False? 1: 2
将分配 2 个
另请参阅此问题: Java Equivalent to iif function
【讨论】:
以上是关于这些代码中的问号是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章