0Pricing
Dart Academy · 课时

使用模式进行解构

拆分记录、列表和映射

使用模式进行解构 是 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 记录:轻量级元组
  2. 位置记录字段和命名记录字段
  3. 使用模式进行解构
  4. switch 模式和守卫条件
← 返回 Dart Academy