@运算符在飞镖中到底是什么意思?

What does @ operator exactly mean in dart?

我在 dart 中看到很多 @ 符号,例如 @package_name 或 @somthing。虽然我知道一些例子的用法,比如@override,但我不明白为什么有些包(例如:@freezed)或dart语法(例如:@immutable@lazySingleton)使用此运算符及其功能。

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

如 Kherel 所述,@ 符号用于元数据。它可以帮助开发人员跟踪某些功能以供将来使用。

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

例如,flutter 使用@override 来确保 child 类 允许其特定行为,与 parents.

分开

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