问题:
我似乎找不到关于如何编写类来实现dart注释的示例或教程。
例如,对于Java,您可能有一个注释,它表示在编译时调用的类,并允许您修改或注入代码。 Dart注释也是这样的吗?
我已经做了一些(进一步)深入了解Dart生态系统的这个领域。我正在添加一些注释,因为注释可以是一个功能强大的透明注释,如何使用它。
在查看Dart的一些实际注释后,Dart注释会记录“a 符号”(标签或元数据标签)。问题是如何在Dart中使用注释。
我目前的理解是基于查看代码位,它们是类对象的标记。看起来注释是highly-unstructured,因为虽然可以简单地声明注释,但没有结构可供使用或识别标签(也称为注释)。
注释步骤
至少我认为这是如何运作的。这个领域的Dart language specification并没有太多的信息。
观察和检查也提出了一些一般性问题。我已经留下了各种各样的例子,以帮助其他人加入探索。
读数:
实施例:
答案 0 :(得分:4)
任何带有const构造函数的类都可以用作注释。
const FOO = const Foo(37);
@Foo(42)
class Foo {
@Deprecated("until further notice");
final int x;
@FOO
const Foo(this.x);
}
没有更多内容。
另见https://www.dartlang.org/docs/dart-up-and-running/contents/ch02.html#ch02-metadata
元数据本身不起任何作用。如果您的程序想要读取类的元数据,则需要使用镜像。
import 'dart:mirrors';
const tag = "TAG";
@tag class C {}
void main() {
print(reflectClass(C).metadata.first.reflectee); // prints "TAG"
var c = new C();
print(reflect(c).type.metadata.first.reflectee); // prints "TAG"
}
请参阅:https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-mirrors.ClassMirror#id_metadata
或者,您可以直接处理来源。例如,dart2js编译器有一个“源镜像”库,它反映了源结构。 dart2js和分析器用来理解“代理”注释。