0Pricing
Mojo Academy · 课时

复制与共享状态

了解更改何时会或不会扩散

复制与共享状态 是 CoddyKit 上的免费 Mojo Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Mojo Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Mojo Academy 课程共包含 4 节课。

修改何时会扩散?

有时编辑一个变量也会编辑另一个,有时则不会。区别在于 copy 还是共享状态。🔍

副本是自包含的

获得副本后,您持有的是独立数据。编辑它不会回头影响您复制它时得到的值。

var a = 1
var b = a
b = 2

共享状态:一份数据,两个名称

在共享状态下,两个变量指向相同的底层数据。通过其中一个变量进行的修改,可以通过另一个变量看到。

明显的迹象

请问自己:编辑一个变量后,另一个变量是否也发生了变化?如果是,它们就是共享的;如果不是,您得到的就是副本。

Mojo 默认进行复制

对于值类型,Mojo 在赋值时会提供一个副本。因此在日常代码中,修改会很好地保持在局部。

var first = 7
var second = first
second = 8

结构体会复制其字段

复制结构体时,您会复制其中的每个字段。新结构体与 original 完全独立。

共享为何会带来意外

共享状态意味着远处的修改可能悄悄改变您的值。这种诡异的远距离作用是错误的经典来源。

共享也有用途

共享并非坏事;有时您确实希望只有一个真实来源。关键是要有意地选择共享,而不是意外共享。

用这种视角阅读代码

看到赋值时,请想一想它创建的是副本还是链接。这个习惯可以帮助您预测修改会如何传播。

var original = 50
var backup = original

快速比较

复制:修改停留在原处。共享:修改会扩散。Mojo 的默认设置倾向于副本,因此扩散是例外,而不是规则。

值得信赖的独立性

知道副本彼此独立后,您就可以放心地修改值,并确信程序的其他部分仍然稳定。✅

快速检查

两个变量指向相同的底层数据。您修改其中一个。您预期会发生什么?

回顾

副本会将修改限制在自身范围内;共享状态则会让修改扩散。Mojo 默认复制值类型,因此意外情况很少。🎯

常见问题解答

「复制与共享状态」课时是免费的吗?

是的 — 「复制与共享状态」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Mojo Academy 课程的其余内容,请升级到 CoddyKit PRO。 Mojo Academy 课程共包含 4 节课。

「复制与共享状态」这节课中我会学到什么?

了解更改何时会或不会扩散 你通过在浏览器中直接运行的动手代码来练习 Mojo Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Mojo Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Mojo Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「复制与共享状态」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Mojo Academy 课中编写并运行代码吗?

能。每节 Mojo Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 值语义意味着什么
  2. 复制与共享状态
  3. Mojo 的安全默认行为
  4. 初识变更
← 返回 Mojo Academy