类型推断与显式类型
了解何时添加注解,何时让 Dart 自行判断
类型推断与显式类型 是 CoddyKit 上的免费 Dart Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Dart Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Dart Academy 课程共包含 4 节课。
两种声明方式
您可以自行写出类型,也可以让 Dart 推断类型。两种方式最终都会得到同一个强类型变量。
显式写出类型
显式声明会在开头写明类型。对于任何阅读代码的人来说,这样清晰明了,也能直观说明代码意图。
int total = 42;让 Dart 决定类型
使用 var 时,Dart 会根据右侧的值推断类型。这样可以少写一些内容,同时仍然安全,因为类型依旧是固定的。
var total = 42; // inferred int类型推断不是 dynamic
推断并不意味着宽松。var 仍会获得一个具体类型,之后进行不匹配的赋值时仍会被拒绝。
var name = "Sam";
// name = 5; // error何时应显式写出类型
当仅凭值无法确定类型时,请显式写出类型,例如空列表。这样读者就能准确知道它存放的内容。
List<int> scores = [];类型推断会读取字面量
Dart 会查看您写下的字面量:有小数点表示 double,没有小数点表示 int。字面量的形式决定了类型。
var x = 5; // int
var y = 5.0; // double函数返回值也会被推断
调用函数时,var 会自动根据该函数的返回类型推断变量类型。
var s = "hi".toUpperCase(); // String显式类型能发现错误
声明显式类型后,Dart 会立即指出错误的值,在代码运行之前就发现问题。
int count = "ten"; // compile error可读性与简洁性
两者之间需要权衡:显式类型能增加清晰度,而类型推断可以让代码行更短。在多人共享的代码中,请优先考虑清晰度。
两者都是静态类型
无论选择哪种方式,Dart 都是静态类型语言。类型会在编译时锁定,而不会在运行过程中改变。
一条实用的经验法则
当值的含义一目了然时,让 Dart 推断类型;当写出类型能够补充信息时,就显式写出类型。请以代码能够自我说明为目标。
快速检查
var 实际上会如何影响变量的类型?
回顾:推断类型与显式类型
您已经了解到,显式类型能够说明代码意图,而类型推断可以让代码更简洁。两者都保持静态类型和安全性。👍
常见问题解答
「类型推断与显式类型」课时是免费的吗?
是的 — 「类型推断与显式类型」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Dart Academy 课程的其余内容,请升级到 CoddyKit PRO。 Dart Academy 课程共包含 4 节课。
「类型推断与显式类型」这节课中我会学到什么?
了解何时添加注解,何时让 Dart 自行判断 你通过在浏览器中直接运行的动手代码来练习 Dart Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Dart Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Dart Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「类型推断与显式类型」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Dart Academy 课中编写并运行代码吗?
能。每节 Dart Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。