Flutter 为什么;var";在Dart中,替代数据类型被认为是更好的做法?

Flutter 为什么;var";在Dart中,替代数据类型被认为是更好的做法?,flutter,dart,Flutter,Dart,我在研究Dart,教程中提到,在初始化变量时,使用关键字“var”,而不是像“int”这样的数据类型。Dart将根据初始值自动推断它是“int”或“String”。但是,如果我们直接告诉dart它将变为“int”,不是更快吗。Dart是强类型的,我们不能对整型和字符串(如“javascript”)使用相同的变量,那么“var”在Dart上下文中的用途是什么。在我看来,使用数据类型将更快更容易。为什么认为使用“var”是更好的做法?类型为dynamic的变量类似于javascript,它可以在运行

我在研究Dart,教程中提到,在初始化变量时,使用关键字“var”,而不是像“int”这样的数据类型。Dart将根据初始值自动推断它是“int”或“String”。但是,如果我们直接告诉dart它将变为“int”,不是更快吗。Dart是强类型的,我们不能对整型和字符串(如“javascript”)使用相同的变量,那么“var”在Dart上下文中的用途是什么。在我看来,使用数据类型将更快更容易。为什么认为使用“var”是更好的做法?

类型为
dynamic
的变量类似于javascript,它可以在运行时更改类型。例如,存储一个整数,然后更改为字符串

var
与dynamic不同
var
是初始化变量的一种简单方法,因为您不必显式地声明类型。Dart只是推断类型,以便更方便您。如果您写入
int number=5
,它将与
var number=5
相同,因为dart将推断此变量为整数


本教程可能会说
var
优于
int
的原因可能是为了使代码更可读,但我相信这对代码没有任何影响。您可以使用其中任何一个,它都不会产生任何影响。

它不会影响运行时性能。类型推断静态发生(即在编译时);编译后的代码应该是相同的。它可能会对编译时间产生一些影响,但可能可以忽略不计。另请参见和。另外,使用
var
可以减少删除类型的泛型部分的可能性。很多时候,我们都会看到程序员编写的代码
List myList=someMethod()
其中
someMethod
确实返回了
List
。但是由于他们已经显式地编写了
List
,这将使
myList
变成
List
。如果您只是使用
var
final
作为类型,您会自动获得
列表
。我对此感到非常困惑。一般来说,我认为代码更具体时可读性更强。使用
int
表明开发人员打算使用整数。使用
var
意味着开发人员不确定或不关心。我真的不明白它的好处@julemand101对某些情况下是否存在
var
提出了一个有趣的论点,但我看不出对更基本的变量使用它的价值。@twiz这确实是一个关于经验的问题。但是我要说的是,如果你能很好地构造你的代码,并给你的变量起一些好的描述性名称,如果方法变量是用特定类型定义的,那么它很少能使代码更具可读性。请记住,我们可以依靠IDE使我们的生活更轻松。因此,如果我需要知道一个类型,我通常只需转到变量并在IntelliJ中单击Ctrl+Q即可获得类型信息。我可以做到这一点,而不必滚动到变量定义的位置。代码不需要在记事本中100%易于阅读。