Dart基础之诠(quán)释数据(MetaData)

838 阅读1分钟

什么是诠释数据

诠释数据是为了增加代码额外的信息。

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');
}

诠释数据可以出现在库,类,类型定义,类型参数,构造函数,工厂,函数,字段,参数或变量声明之前,也可以出现在导入或导出指令之前。

你可以在运行时使用反射来取回元数据