Dart 中函数中的变量应该使用什么关键字?

Ano*_*ous 5 dart flutter

我知道如何命名类中的变量,但它与函数有何关系?我注意到一些开发人员使用 Final 关键字来表示在函数中永远不会改变的变量,但其他开发人员甚至在函数中也使用 var 。

就干净的代码和性能而言,推荐使用以下哪些示例?

doSomething() {
  final int i = 1;
  print(i.toString());
}

 doSomething() {
  final i = 1;
  print(i.toString());
}

doSomething() {
  int i = 1;
  print(i.toString());
}

doSomething() {
  var i = 1;
  print(i.toString());
}

Run Code Online (Sandbox Code Playgroud)

Tar*_*lda 1

根据 Dart 官方文档,使用finalvsvar是一个品味问题;重要的是要保持一致。根据这个答案,大多数编译器都会注意到,无论您是否将其设为最终变量,都不会重新分配变量。同一文档链接表示,大多数变量不应显式分配数据类型,而应仅使用关键字finalvar。我个人不同意,因为意外重新输入变量的经历很糟糕,但这是官方建议。

如果将变量设置为最终变量,则编译器将强制其状态为只读。linter 建议您始终使用final未重新分配的变量。