什么是诠释数据
诠释数据是为了增加代码额外的信息。
class Television {
/// _Deprecated: Use [turnOn] instead._
@deprecated
void activate() {
turnOn();
}
/// Turns the TV's power on.
void turnOn() {...}
- 使用
@符号开头作为诠释数据的注解,后面跟编译时常量引用,或对常量构造函数的调用 @override和@deprecated是两个最常见的代码注解
创建并使用一个诠释数据注解
library todo;
class Todo {
final String who;
final String what;
const Todo(this.who, this.what);
}
- 定义
Todo类,并且增加常量构造函数 - 常量构造函数的参数必须是
final定义
使用todo
import 'todo.dart';
@Todo('seth', 'make this do something')
void doSomething() {
print('do something');
}
诠释数据可以出现在库,类,类型定义,类型参数,构造函数,工厂,函数,字段,参数或变量声明之前,也可以出现在导入或导出指令之前。
你可以在运行时使用反射来取回元数据