详解 var、final 和 const
在可变值、运行时值和编译时值之间进行选择
详解 var、final 和 const 是 CoddyKit 上的免费 Dart Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Dart Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Dart Academy 课程共包含 4 节课。
为值命名的三种方式
在 Dart 中,您可以将数据存储在称为变量的命名容器中。选择的关键字决定了这个容器之后能否改变。
认识 var
当值之后会改变时,请使用 var。Dart 仍会为您推断类型,因此 var 既方便又安全。
var score = 0;
score = 10;var 会锁定类型
尽管 var 看起来很宽松,但类型只会确定一次。赋值为 int 后,您就不能再将文本存储到同一个容器中。
var count = 5;
count = 6; // ok认识 final
当值只设置一次且不会重新赋值时,请使用 final。它会在程序运行时确定,之后保持不变。
final name = "Ada";final 抵制重新赋值
如果尝试为 final 赋予新值,Dart 会在编译时阻止您。这样可以保护那些本来就不应改变的值。
final pi = 3.14;
// pi = 3; // error!认识 const
对于在程序运行前就已知的值,请使用 const。它们会在编译时写入程序,并永久固定。
const maxUsers = 100;const 表示编译时确定
const 值必须能够在编译过程中计算出来。您不能使用只有运行时才知道的内容,例如当前时间。
const now = DateTime.now(); // error一行看懂 final 与 const
可以这样理解:final 在运行时设置一次,而 const 更早就会在编译时冻结。🧊
优先使用 final 而不是 var
一个好习惯是优先考虑使用 final。如果值不需要改变,final 能明确表达您的意图并避免错误。
const 对象具有规范唯一性
两个完全相同的 const 对象会在内存中共享同一个实例。这可以节省空间,非常适合固定的配置值。
const a = [1, 2];
const b = [1, 2]; // same object选择合适的关键字
会改变吗?使用 var。运行时设置一次?使用 final。运行前就已知?使用 const。这个简单的问题可以指导您做出选择。
快速检查
对于在运行时计算但不会重新赋值的值,应选择哪个关键字?
回顾:var、final、const
您已经学到:var 的值可以改变,final 在运行时设置一次,而 const 在编译时就会冻结。默认情况下优先使用 final。🎉
常见问题解答
「详解 var、final 和 const」课时是免费的吗?
是的 — 「详解 var、final 和 const」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Dart Academy 课程的其余内容,请升级到 CoddyKit PRO。 Dart Academy 课程共包含 4 节课。
「详解 var、final 和 const」这节课中我会学到什么?
在可变值、运行时值和编译时值之间进行选择 你通过在浏览器中直接运行的动手代码来练习 Dart Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Dart Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Dart Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「详解 var、final 和 const」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Dart Academy 课中编写并运行代码吗?
能。每节 Dart Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 详解 var、final 和 const
- 核心类型:int、double、String、bool
- 类型推断与显式类型
- dynamic 和 Object 类型