3

我在 dart 中看到很多@类似 @package_name 或 @somthing 的符号实例。虽然我知道一些示例的用法,例如@override,但我无法理解为什么某些包(例如@freezed:)或 dart 语法(例如:@immutable@lazySingleton)使用此运算符以及它的功能是什么。

4

2 回答 2

4

这是关于它的元数据:dart language-tour

于 2020-06-05T13:15:26.553 回答
1

正如 Kherel 提到的,@ 符号用于元数据。它可以帮助开发人员跟踪某些功能以备将来使用。

如果需要,您可以使用“dart:mirrors”库将该元数据用于编程目的。

例如,flutter 使用 @override 来确保允许子类的特定行为,与父类分开。

最常见的用法是以某种方式对函数和类进行分类以便于访问。IDE 还可以跟踪某些元数据,以警告您函数的运行方式(例如,通过@TODO 或@deprecated)。

于 2021-03-15T17:09:10.297 回答