创建变量时应该指定类型吗?
仅仅声明关键字“var”有什么缺点吗?
这两者有什么区别吗?
var a = 0;
int a = 0;
优点缺点
ONGOING WORK
最佳实践
推荐使用var
or final关键字,不指定类型注释,并隐式推断类型已知局部变量。否则,建议指定类型注释。至于dynamic
关键字,当您进行手动类型检查时,在特定用例中应该非常谨慎地使用它。例如print(myVariable is SomeType)
.
omit_local_variable_typesDart linter 规则鼓励省略类型注释已知局部变量. always_specify_types鼓励为不属于以前的 linter 规则范围的情况指定类型注释。
1. Flutter 存储库的风格指南
1.1 避免使用var
所有变量和参数都是类型化的;避免使用“动态”或“对象”
在任何情况下你都可以找出实际类型。始终专注
尽可能使用泛型类型。显式输入所有列表和地图
文字。
这实现了两个目的:它验证该类型
编译器会推断出与您期望的类型匹配,并且它使
在类型不明显的情况下代码自记录(例如
当调用构造函数以外的任何内容时)。
始终避免“var”。如果您明确表明
类型未知,但更喜欢“对象”和强制转换,如使用动态
禁用所有静态检查。
2. Dart Lint 规则
2.1 omit_local_variable_types
CONSIDER省略局部变量的类型注释。
通常,局部变量的类型很容易推断,因此
没有必要对它们进行注释。
2.2 always_specify_types
DO指定类型注释。
Avoid var
当指定类型未知且简写时
删除类型注释。使用dynamic
如果您明确表示
类型未知。使用Object
如果你明确表示你想要
实现的对象==
and hashCode
.
参考
您可以参考Flutter 存储库的风格指南,完整列表Dart 的 Linter 支持 Lint 规则, and 有效的 Dart 风格指南.
Note, Flutter 存储库的风格指南在 flutter 社区中使用,并且优先于 LinterRules 和Effective Dart 的风格指南,尤其是在 repo 贡献中。据我所见,Flutter 存储库的风格指南更像是一个超集风格指南,应该遵守 Dart Linter 规则。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)