香港专业教育学院看到这段代码,任何人都可以向我解释一下它的AppTheme._()含义,因为我在dart中了解了它的单例类,但我真的不明白它的工作原理。
class AppTheme {
AppTheme._();
static const Color notWhite = Color(0xFFEDF0F2);
static const Color nearlyWhite = Color(0xFFFEFEFE);
static const Color white = Color(0xFFFFFFFF);
static const Color nearlyBlack = Color(0xFF213333);
.
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
Sub*_*ces 39
AppTheme._();是一个命名构造函数(另一个例子可能是 Flutter 框架中某些对象的复制构造函数:)ThemeData.copy(...);。
在 dart 中,如果前导字符是下划线,则函数/构造函数是库私有的。这里也是这种情况,下划线也是唯一的字符,所以我想写这个构造函数的人根本不打算调用那个构造函数。
的AppTheme._();,除非你不想AppTheme永远使用隐含的默认构造函数被意外实例化是没有必要的。
jos*_*lly 12
它是为了使类不可实例化。
更多关于https://www.woolha.com/tutorials/dart-prevent-instantiation-of-class#:~:text=Creating%20Private%20Constructor%20to%20Prevent, (下划线)%20which%20means% 20private 。
另外,我认为这总结了为什么我们首先需要它“如果一个类有一个或多个私有构造函数并且没有公共构造函数,则其他类(嵌套类除外)无法创建此类的实例。”来自https://learn .microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/private-constructors
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |