创建变量时应该输入类型吗?
仅声明关键字“ var”有什么缺点?
这两者之间有什么区别吗?
var a = 0;
int a = 0;
ONGOING WORK
建议使用var
或final
关键字,而不指定类型批注,并隐式地推断已知局部变量的类型。否则,建议指定类型注释。至于final
关键字,当您进行手动类型检查时,应在特定用例中非常谨慎地使用它。例如dynamic
。
print(myVariable is SomeType)
Dart linter规则鼓励省略已知局部变量的类型注释。 omit_local_variable_types
鼓励为不属于先前的linter规则的案例指定类型注释。
omit_local_variable_types
always_specify_types
所有变量和参数都被键入;避免在“动态”或“对象”中 在任何情况下,您都可以弄清楚实际类型。始终专精 通用类型。明确输入所有列表和地图 文字。
这可以达到两个目的:它可以验证 编译器会推断出与您期望的类型匹配,并且使 在类型不明显的情况下(例如 当调用除构造函数以外的任何东西时。
始终避免使用“ var”。如果要明确指出“动态” 类型未知,但更喜欢使用“对象”和强制类型转换,因为使用动态 禁用所有静态检查。
always_specify_types
CONSIDER省略局部变量的类型注释。
通常,可以轻松推断局部变量的类型,因此 不需要注释它们。
var
DO指定类型注释。
在指定类型为未知类型和简写形式时应避免
var
忽略类型注释。如果要明确指出,请使用Dart Lint Rules 类型未知。如果要明确表示您希望使用omit_local_variable_types
实现omit_local_variable_types
和always_specify_types
的对象。
您可以参考always_specify_types
,var
的完整列表和dynamic
。
注意,Object
在flutter社区中使用,并且优先于LinterRules和Effective Dart的样式指南,尤其是在回购贡献中。从我所看到的内容来看,==
更像是应该遵循Dart Linter规则的超集样式指南。