我有一个fancy_button.dart自定义 Flutter 小部件的文件,FancyButton如下所示:
class FancyButton extends StatefulWidget {
// ...
}
class _FancyButtonState extends State<FancyButton> {
// ...
}
// Declaration outside any class:
Map<_FancyButtonState, Color> _buttonColors = {};
final _random = Random();
int next(int min, int max) => min + _random.nextInt(max - min);
// ...
Run Code Online (Sandbox Code Playgroud)
该应用程序运行良好。请注意,我在任何类之外声明并使用了一些变量。现在我的问题是:这怎么可能?不应该所有东西都在 Dart 的一个类中,比如 Java?
不,Dart 支持在全局空间中定义的变量和函数。您可以通过main()在任何类之外声明的方法看到这一点。
此外,全局变量(和静态类变量)是惰性计算的,因此在您尝试使用它们时首先定义该值。因此,即使有一堆未使用的全局变量,您的运行时也不会变慢。
| 归档时间: |
|
| 查看次数: |
1350 次 |
| 最近记录: |