flutter Dart中函数中的变量应该有什么关键字?

5us2dqdw  于 2022-11-17  发布在  Flutter
关注(0)|答案(3)|浏览(145)

我知道如何在类中命名变量,但它与函数有什么关系呢?我注意到一些开发人员使用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());
}
8dtrkrch

8dtrkrch1#

根据Dart的官方文档,使用finalvar是一个品味问题;重要的是保持一致。根据this answer,大多数编译器会注意到,无论是否将变量设置为final,它都不会被重新赋值。同一个文档链接说,大多数变量不应该显式地赋值数据类型,而应该只赋值关键字finalvar。我个人不同意这种说法,因为我有过不小心重新键入变量的糟糕经历,但这是官方的建议。
如果你把变量设置为final,那么编译器会强制它的状态为只读,linter建议你总是使用final来处理那些没有被重新赋值的变量。

mbskvtky

mbskvtky2#

我应该使用var还是键入int之类的注解?

以下是我的方法:
在Dart中,var关键字被用来声明一个变量。Dart编译器根据赋值变量自动知道数据的类型,因为Dart是一种推断类型语言。
因此,如果你之前 * 知道 * 类型,你可以使用var,因为Dart可以自动为你推断类型。例如:

var name = 'Andrew'

但是,如果您以前 * 不知道 * 类型,则可以使用类型注解:

int age;
...
age = 5;
  • 要了解更多的解释,您可以查看https://www.javatpoint.com/dart-variable的“如何在Dart中声明变量”部分,他们更详细地解释了您的问题的答案,(我已经使用了他们的示例)
hjzp0vay

hjzp0vay3#

对于不改变的值,最好使用final。
如果你不确定的话,可以使用棉绒。

  • dart pub add lints-官方棉绒
#analysis_options.yaml
include: package:lints/recommended.yaml
  • dart pub add zekfad_lints-我喜欢使用的棉绒
#analysis_options.yaml
include: package:zekfad_lints/untyped/dart.yaml

# If you are using flutter
#include: package:zekfad_lints/untyped/flutter.yaml

相关问题