var 和 Dart 中其他更具体的类型之间的区别

Chr*_*Lee 3 dart flutter

我来自 Javascript 的“let”,我对 var 和其他类型之间的巨大差异感到有点困惑。我知道在某些情况下我们需要使用 var(匿名数据类型),而在某些情况下我们需要使用显式类型。我也理解var不太简洁,类型较多,但是在Flutter开发中使用类型代替var是否有更深入或者更实际的应用呢?

jam*_*lin 6

你永远不需要使用var; 您始终可以选择指定显式类型。

var如果要声明变量并希望从初始值设定项推断类型,则使用。(如果没有初始值设定项,则变量的类型将为dynamic。但是,由于dynamic禁用该变量的静态类型检查并会产生额外的运行时成本,因此您应该尽可能避免dynamic,并且应该将变量显式地指定为dynamic,并在必要时

如果变量类型是可推断的,那么使用隐式类型还是显式类型只是风格问题。

使用显式类型的优点:

  • 无需工具即可提高可读性(即无需可以显示变量类型的 IDE 支持)。
  • 可以捕获推断类型不是预期类型的​​类型错误。

使用隐式类型的优点:

  • 更简洁,这可以说使代码的其余部分更具可读性。
  • 可以避免显式类型意外地不如推断类型精确的类型错误。例如:List someList = [1, 2, 3]; 实际上声明someList为类型,List<dynamic>即使右侧将被推断为List<int>