这些代码中的问号是什么意思?

时间:2019-01-14 05:00:52

标签: java android-studio kotlin flutter

这些源代码来自flutter教程

小部件_buildRow(WordPair对){   最终布尔已经保存= _saved.contains(pair);   返回新的ListTile(     标题:新文本(       pair.asPascalCase,       风格:_biggerFont,     ),     尾随:new Icon(//从此处添加行...       已经保存? Icons.favorite:Icons.favorite_border,       颜色:已经保存? Colors.red:null,     ), // ... 到这里。   ); }

这部分是什么意思? 尾随:new Icon(//从此处添加行...       已经保存? Icons.favorite:Icons.favorite_border,       颜色:已经保存? Colors.red:null,     ), // ... 到这里。 有人可以用相同的逻辑制作另一种形式的代码吗?我不明白这部分

2 个答案:

答案 0 :(得分:2)

它是三元运算符(或简称if)。例如,以下内容等效:

if (COND) {
   X = A;
} else {
   X = B;
}

X = COND ? A : B; // if COND condition is met, execute A, otherwise execute B

请参阅此article

在您的示例中,如果变量alreadySaved为true,则使用Icons.favoriteColors.red。如果alreadySaved为假,则将Icons.favorite_bordernull一起使用。

答案 1 :(得分:1)

如果是立即数,那么它基本上意味着是否要分配第一个值,否则(标有“:”)分配第二个值。

简单的例子:

Foldable

将分配1

Traversable

将分配2

也看到以下问题: Java Equivalent to iif function