是否有静态类与导入前缀之间的区别?



在app文件夹中有一个名为constants.dart的文件。

一个常量的例子是

const String name = "Daniel";

我希望能够通过输入Constant.name来使用文件中的const变量。

创建一个名为Constant的类与使用公共静态变量或通过使用as constant;导入我的常量文件有什么区别?

有第三种选择吗?

如果它是一个utils文件,我有没有副作用的方法怎么办?

谢谢!

官方推荐的样式是使用顶级常量,而不是包含它们的类。

允许用户导入任何前缀(不只是Constant),甚至不带前缀,如果他们真的想。

使用类作为容器是任意的。您可以使用classmixinextension声明来声明常量。这三种方法都在原来的基础上引入了静态名称空间,如果您只关心静态名称空间,那么可以使用其中任何一种。

老实说,如果我真正想要的只是一个名称空间,我可能会这样做:

// Namespace containing utility functions!
extension MyConstants on Never {
static int foo() => 42;
static const int = 10;
}

而不使用类。这样,它就不会引入一个永远不会用于任何地方的类型

或者,我真的会按照样式指南做顶层声明。

最新更新