flutter - 当我在颤振中使用带有本地小部件的final时,我应该添加类类型吗?
问题描述
代码 A:
class MyContainer extends StatelessWidget {
const MyContainer({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
// No class type
final container = Container(
width: 100,
height: 100,
color: Colors.red,
);
return container;
}
}
代码 B:
class MyContainer extends StatelessWidget {
const MyContainer({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
// Add class type
final Widget container = Container(
width: 100,
height: 100,
color: Colors.red,
);
return container;
}
}
我更喜欢代码 A,但我在以下代码中看到了一些颤动的源代码AppBar
:
final Widget toolbar = NavigationToolbar(
leading: leading,
middle: title,
trailing: actions,
centerMiddle: widget._getEffectiveCenterTitle(theme),
middleSpacing: widget.titleSpacing,
);
就像代码B一样,为什么flutter官方要添加class类型呢?为了表现?为了更具可读性?还是其他原因?
当我将 final 与本地小部件一起使用时,我应该添加类类型吗?
解决方案
Dart 是类型安全的,您可以决定是否添加类型。类型注释是可选的,因为 Dart VM 执行运行时检查并确保变量的值始终与变量的静态类型匹配。有关Dart 类型系统的更多信息,请参阅此内容。
推荐阅读
- java - ANTLR 意外行为
- powershell - 使用 powershell 脚本运行 .exe 文件
- python - 我不能再用 pip 安装任何东西,也不能升级 pip
- swift - 在接受闭包的视图中使用闭包与方法
- mysql - 在另一个 Select SQL 查询上选择 SQL 查询,给出 null
- r - 哪些 R 函数对于计算多元线性回归(使用交互项)中的部分 eta 平方是正确的?
- cypress - 如何在 Cypress 中模拟鼠标滚轮?
- c - 链接 paho 图书馆
- firebase - Firebase 动态链接在没有预览页面的情况下无法在 iOS 上打开应用
- python - 在 Cython 中制作一个可执行文件,包括头文件和共享库