dart - 对于类构造函数和函数参数中的命名参数的默认值, “:”和 “=”有什么区别

标签 dart

考虑一个动物类,它具有两个字段-totalLegstype

class Animal {
  final int totalLegs;
  final String type;
}

假设totalLegs默认为4,而type默认为“cat”。我们可以通过两种不同的方式为字段设置默认值:
  • 使用“=”

  • class Animal {
      ...
    
      Animal({this.totalLegs = 4, this.type = 'cat'});
    }
    
  • 使用“:”

  • class Animal {
      ...
    
      Animal({this.totalLegs: 4, this.type: 'cat'});
    }
    

    两种方式的行为是否相同?有什么不同?或者,如果没有区别,为什么不只有一种设置默认值的方法呢?

    最佳答案

    它们是相同的,但是不推荐使用:。它被替换为=。我认为,出于某些向后兼容性的原因,未删除已弃用的版本。但是现在建议使用=代替:,并且不能保证它的 future 。它可能会在Dart的 future 版本中删除,否则不会删除。

    关于dart - 对于类构造函数和函数参数中的命名参数的默认值, “:”和 “=”有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62103840/

    相关文章:

    dart - 产生动态的小组成员

    flutter - 验证并仅允许 TextField 中的日期和连字符——MaskTextInputFormatter 不适用于手动更新文本

    dart - 无法在 flutter 登录中显示 snackbar

    android - Flutter重新运行内部StatefulWidget的initState函数

    flutter - 返回并显示 snackbar

    flutter - 在 flutter 中,在 initstate() 之前调用了dependOnInheritedElement()

    static - dart const 静态字段

    angular - Angular2Dart Router.currentInstruction未设置

    dart - Flutter - 将 future 列表传递给 SearchDelegate

    flutter - 覆盖给我一个错误,我找不到函数