使用模式进行解构
拆分记录、列表和映射
使用模式进行解构 是 CoddyKit 上的免费 Dart Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Dart Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Dart Academy 课程共包含 4 节课。
什么是解构
解构是指一次性从结构中取出值并赋给变量。就像打开一个盒子,同时给里面的每件物品贴上标签。🎁
模式描述形状
模式是用于匹配值的形状的模板。如果值符合该形状,Dart 就会将其中的各个部分绑定到您写出的名称上。
解构记录
将记录模式放在=的左侧,Dart 就会从匹配的位置填入每个变量。两个值对应两个名称,立即完成。
var (a, b) = (1, 2);
print(a);命名记录模式
对于命名字段,请在模式中通过名称进行匹配。左侧的字段名会告诉 Dart 要取出哪个值。
var (x: a, y: b) = (x: 3, y: 7);
print(b);轻松交换值
解构非常适合交换两个变量。创建一个记录,将其解包,两个值就能在一行整洁的代码中交换位置。
(a, b) = (b, a);
print(a);解构列表
列表模式使用方括号。每个位置绑定一个元素,因此各个位置会与变量一一对应。
var [first, second] = [10, 20];
print(first);剩余元素
在列表模式中,...会捕获所有剩余元素。取出开头部分,让其余元素收集成尾部。
var [head, ...rest] = [1, 2, 3, 4];
print(rest);解构映射
映射模式通过键读取值。列出您关心的键,并将每个值绑定到一个变量。
var {'id': id} = {'id': 42, 'name': 'A'};
print(id);通配符模式
当您不关心某个位置时,可以使用下划线作为通配符。它可以匹配任何内容,但不会绑定任何值。
var (_, important) = ('skip', 99);
print(important);在 for-in 中解构
您可以直接在for-in循环中进行解构。迭代时解包每条记录,无需手动使用索引。
for (var (k, v) in [(1, 'a')]) {
print(v);
}更简洁、更扁平的代码
模式用一行易读的代码替代了一连串的.field查找。您的意图一眼就能看清。
快速检查
在模式 var (_, x) = ('a', 1) 中,下划线的作用是什么?
回顾:解构
做得好!🙌 模式可以将记录、列表和映射解构为命名变量,并通过通配符和剩余元素实现整洁的匹配。
常见问题解答
「使用模式进行解构」课时是免费的吗?
是的 — 「使用模式进行解构」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Dart Academy 课程的其余内容,请升级到 CoddyKit PRO。 Dart Academy 课程共包含 4 节课。
「使用模式进行解构」这节课中我会学到什么?
拆分记录、列表和映射 你通过在浏览器中直接运行的动手代码来练习 Dart Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Dart Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Dart Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「使用模式进行解构」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Dart Academy 课中编写并运行代码吗?
能。每节 Dart Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。