java - 这些代码中的问号是什么意思?
问题描述
这些源代码来自颤振教程
小部件 _buildRow(WordPair pair) { final bool alreadySaved = _saved.contains(pair); return new ListTile( title: new Text( pair.asPascalCase, style: _biggerFont, ), trailing: new Icon( // 从这里添加行... alreadySaved ? Icons.favorite : Icons.favorite_border, color: alreadySaved ? Colors. red : null, ), // ... 到这里。); }
这部分是什么意思?trailing: new Icon( // 从这里添加行... alreadySaved ? Icons.favorite : Icons.favorite_border, color: alreadySaved ? Colors.red : null, ), // ... 到这里。有人可以用相同的逻辑制作另一种形式的代码吗?我不明白这部分
解决方案
它是三元运算符(或short-if)。例如以下是等价的:
if (COND) {
X = A;
} else {
X = B;
}
X = COND ? A : B; // if COND condition is met, execute A, otherwise execute B
见这篇文章。
在您的示例中,如果变量alreadySaved
为真,Icons.favorite
则使用Colors.red
. 如果alreadySaved
为假,则Icons.favorite_border
与颜色一起使用null
。
推荐阅读
- oracle - ora-03147 缺少必填的 TTC 字段
- javascript - 我希望 php 在刷新页面时重定向到我设置的目录
- java - 根据 JSR-310 本地化 YearWeek 的良好设计
- python - scrapy编码数据文本python
- xamarin - 如果我运行每分钟运行一次并从 App.Xaml.cs OnStart() 调用的异步方法,是否存在任何可能的性能问题?
- c - 如何从字符串类型行中提取char类型元素并添加到c中的列表
- javascript - Javascript 在有效文件名后获取路径(如 PHP PATH_INFO)
- xampp - PWA - 与 Xampp 和虚拟主机一起使用时无法注册 Service Worker
- javascript - ugly nested forEach in javascript best practise
- jenkins-pipeline - Artifactory Continuous integration approach