gpt4 book ai didi

javascript - 如何为 Dart 编写注释

转载 作者:行者123 更新时间:2023-11-28 13:33:01 24 4
gpt4 key购买 nike

问题:

  • 实现注释的过程是怎样的。
  • 如何,或者什么时候可以激活您开发的注释?

我似乎找不到有关如何编写类来实现 的注释的示例或教程。 。

例如,对于 Java,您可能有一个注释来表示在编译时调用的类,并允许您修改或注入(inject)代码。 Dart 注释也是这样工作的吗?

背景

我对 Dart 生态系统的这一领域进行了一些(进一步)挖掘。我添加了一些注释,因为注释可以非常强大,并且可以对如何使用它进行透明的注释。

查看 Dart 的一些实际注释后,Dart 注释会记录“一个符号”(标签或元数据标签)。问题是关于如何在 Dart 中使用注释。

gloaming

根据查看代码,我目前的理解是它们是类对象上的标记。看起来注释是 highly-unstructured因为虽然可以简单地声明注释,但没有可以使用或识别标签的结构(又名注释)。

标注步骤

  1. 确定您要标记的属性或操作。
  2. 需要编写代码来使用或“运行”您的注释。看看类似 Observe 的内容举个例子。
  3. 您可以实现和测试加载时代码来查找和处理您的标签。例如,我没有看到注册注释和提供处理程序的基础设施。
    • 这是通过库中的 main() 方法完成的。
  4. 实现并测试注释行为。

至少我认为它是这样运作的。 Dart language specification 中并没有太多信息。在这个区域。

观察和检查也提出了一些一般性问题。我留下了各种阅读 list 和示例,以帮助其他人加入探索。

阅读:

示例:

最佳答案

任何具有 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 编译器有一个“源镜像”库,可以反射(reflect)源结构。这就是 dart2js 和分析器用来理解“proxy”注释的工作。

关于javascript - 如何为 Dart 编写注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23456451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com