0Pricing
Dart Academy · 课时

内置注解:override、deprecated

向工具和协作者表达意图

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

什么是注解

注解是使用 @ 符号附加到代码上的元数据。它不会运行,而是向工具、分析器和团队成员传达信息。🏷️

@ 语法

请将注解放在紧挨声明前的那一行。@前缀告诉 Dart,这个标记是元数据,而不是普通表达式。

@override
String toString() => 'Cat';

认识 @override

@override注解表示某个方法有意替换超类或接口中的方法。它能清楚地记录您的意图。

class Dog extends Animal {
  @override
  void speak() => print('Woof');
}

@override 的作用

如果您拼错了方法名称,或方法签名发生了偏差,分析器会发出警告。因此,@override 能将无声的拼写错误转化为及早发现的可见错误。

认识 @deprecated

@deprecated注解会将某个 API 标记为过时。使用它的代码仍然可以工作,但分析器会显示删除线警告。⚠️

@deprecated
void oldLogin() {}

带有原因的过时标记

请使用带消息的 @Deprecated,引导调用者使用替代方案。文本会显示在工具提示和编辑器警告中。

@Deprecated('Use signIn() instead')
void login() {}

注解可以接收参数

有些注解实际上是构造函数调用,因此可以在括号中接收参数。刚才看到的 @Deprecated('...') 形式就是一个例子。

认识 @pragma

@pragma注解会向 Dart 编译器或运行时传递提示。它属于高级功能,但阅读库代码时,您应该能够识别它。

@pragma('vm:entry-point')
void handler() {}

注解不会运行

请记住:注解是被动标签,不会自行执行。它们的值会被工具、分析器或代码生成器读取。

可以放置注解的位置

您可以为类、方法、字段、参数等添加注解。每个注解在声明时都会定义允许标注的目标。

@deprecated
class LegacyService {}

叠加注解

您可以在一个声明上叠加多个注解,每个注解单独占一行。顺序不会改变行为,因此请以可读性为先进行书写。

@override
@deprecated
void render() {}

快速检查

请选择用于标记某个方法替换父类方法的注解。

回顾

您认识了三个内置注解:用于表达意图的 @override、用于发出警告的 @deprecated,以及用于传递编译器提示的 @pragma。它们都是被动元数据。🎉

常见问题解答

「内置注解:override、deprecated」课时是免费的吗?

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

「内置注解:override、deprecated」这节课中我会学到什么?

向工具和协作者表达意图 你通过在浏览器中直接运行的动手代码来练习 Dart Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Dart Academy 需要有经验吗?

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

「内置注解:override、deprecated」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. 内置注解:override、deprecated
  2. 编写自定义注解
  3. 使用 build_runner 生成代码
  4. json_serializable 实战
← 返回 Dart Academy