【发布时间】:2021-08-19 15:28:38
【问题描述】:
当您想在 Dart 中定义全局变量以在程序中的任何位置读取和写入时,一般建议似乎是创建一个 Singleton 类,例如
class Globals {
// Constructor boilerplate
static final Globals _instance = Globals._();
factory Globals() => _instance;
Globals._();
// Global variable
int variable = 0;
}
然后您可以使用Globals().variable 读取值并使用Globals().variable = 1 写入。
然而,对于一个简单的静态变量来说,这似乎是可能的,例如
class Globals {
// Global variable
static int variable = 0;
}
使用Globals.variable 和Globals.variable = 1 读写。如果我们运行一个简单的例子:
void main() {
print(Globals.variable);
Globals.variable++;
print(Globals.variable);
}
返回
0
1
所以似乎是作为一个全局变量。我在 Flutter 的上下文中使用全局变量,我希望变量集合在整个应用程序中广泛可用和可调整。
那么使用单例和静态声明全局变量有什么区别?
【问题讨论】: