元数据

优质
小牛编辑
129浏览
2023-12-01

使用元数据 (metadata) 来给你的代码提供额外的信息。一个元数据注解以字符 @ 开头,后面跟着的要么是编译期常量(比如 deprecated),要么是常量构造函数的调用。

有两个注解可应用于所有的 Dart 代码:@deprecated@override。使用 @override 的例子,请参阅 继承类。下面是一个使用 @deprecated 注解的例子:

class Television {
  /// _已废弃: 使用 [turnOn] 代替_
  @deprecated
  void activate() {
    turnOn();
  }

  /// 开启 TV 的电源
  void turnOn() {...}
}

你可以定义自己的元数据注解。下面是定义一个接受两个参数的 @todo 注解的例子:

library todo;

class Todo {
  final String who;
  final String what;

  const Todo(this.who, this.what);
}

然后下面是一个使用 @todo 注解的例子:

import 'todo.dart';

@Todo('seth', 'make this do something')
void doSomething() {
  print('do something');
}

元数据可以出现在库、类、typedef、类型参数、构造函数、工厂构造函数、函数、字段、参数或变量声明前以及导入导出指令前。你可以在运行期通过反射取回元数据。