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

Gal*_*dra 2 java kotlin android-studio flutter

这些源代码来自 flutter 教程

Widget _buildRow(WordPairpair) { Final bool hasSaved = _saved.contains(pair); return new ListTile( title: new Text(pair.asPascalCase, style: _biggerFont, ), Trailing: new Icon( // 从这里添加行... hasSaved ? Icons.favorite : Icons.favorite_border, color: alreadySaved ? Colors. red : null, ), // ... 到这里。); }

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

Osw*_*ann 5

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

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

X = COND ? A : B; // if COND condition is met, execute A, otherwise execute B
Run Code Online (Sandbox Code Playgroud)

请参阅这篇文章

在您的示例中,如果变量alreadySaved为 true,则Icons.favorite使用 以及Colors.red。如果alreadySaved为 false,则与颜色Icons.favorite_border一起使用。null