集合中的 if 和 for
按条件和循环构建列表
集合中的 if 和 for 是 CoddyKit 上的免费 Dart Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Dart Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Dart Academy 课程共包含 4 节课。
字面量中的逻辑
有时列表的内容取决于某个条件。Dart 允许您将条件判断直接放入集合字面量中,从而在一个地方构建集合。
集合条件判断
集合条件判断只会在条件为真时添加一个元素。如果没有满足条件的情况,该位置就不会贡献任何内容。
var nav = ['Home', if (loggedIn) 'Profile'];带有否则分支的条件判断
您可以添加否则分支,在两个元素之间进行选择。两个元素中始终只有一个会进入集合,不会同时加入。
var tags = [if (vip) 'Gold' else 'Standard'];无需大括号
与语句级条件判断不同,集合条件判断不需要大括号,也不需要分号。它会生成一个元素,而不是运行一个代码块。
集合循环
集合循环可以在字面量内部通过循环生成元素。每次循环都会添加循环体产生的内容。
var doubled = [for (var n in nums) n * 2];类似映射,但直接内联
如果您已经位于字面量中,集合循环通常可以替代映射调用。对于简单转换,这样写起来更加直接。
混合条件判断与循环
您可以将两者组合起来:先循环,再使用条件判断进行筛选。它们可以在一个富有表现力的字面量中构建出经过整理的列表。
var evens = [for (var n in nums) if (n.isEven) n];不只适用于列表
集合条件判断和循环同样适用于集合和映射字面量。相同的简洁语法可以构建这三种集合类型。
var m = {for (var u in users) u.id: u.name};与展开配合使用
您可以将这些功能与展开运算符混合使用。在一个字面量中内联一些项目、展开另一个集合,并添加条件判断。
var x = [...base, if (extra) 'plus'];为什么优于事后构建
预先构建集合可以保持代码的声明式。这样就不需要先创建空列表,再通过单独的语句向其中添加项目。
非常适合用户界面列表
这在 Flutter 中尤其有用,因为子元素列表经常需要根据条件或数据显示控件。字面量依然整洁易读。🧩
快速检查
当集合条件判断的条件为假且没有提供否则分支时,会发生什么?
回顾
集合条件判断可以有条件地添加元素,集合循环可以在循环中生成元素,而且它们都能直接用于列表、集合和映射字面量。🎯
用 AI 导师学习 Dart — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 30
- 课程
- 120
常见问题解答
「集合中的 if 和 for」课时是免费的吗?
是的 — 「集合中的 if 和 for」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Dart Academy 课程的其余内容,请升级到 CoddyKit PRO。 Dart Academy 课程共包含 4 节课。
「集合中的 if 和 for」这节课中我会学到什么?
按条件和循环构建列表 你通过在浏览器中直接运行的动手代码来练习 Dart Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Dart Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Dart Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「集合中的 if 和 for」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Dart Academy 课中编写并运行代码吗?
能。每节 Dart Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 级联运算符(..)
- 空值短路级联(?..)
- 展开和空值感知展开
- 集合中的 if 和 for