【问题标题】:How to migrate List fold to null saftey如何将列表字段迁移到空安全
【发布时间】:2021-09-04 03:37:50
【问题描述】:

这段代码运行良好,没有 null 安全性:

void main() {
  final a = X(22.5);
  final b = X(22.5);
  List<X> x = [a, b];
  var tot = x.fold(0.0, (a, b) => a + b.dist);
  print(tot);
}

class X {
  final double dist;
  X(this.dist);
}

我们得到零安全性:

不能无条件调用运算符“+”,因为接收者可以为“null”。 尝试将空检查添加到目标 ('!')。

不知道目标是谁/什么或接收者。我已经阅读了有关 null 安全性的所有 Dart 材料,但无法将其构建为箭头表达式 (=> a + b.dist)。

感谢您的帮助!

【问题讨论】:

    标签: dart dart-null-safety


    【解决方案1】:

    您可以选择以下方法之一:

    1. 明确定义fold方法类型参数:
    var tot = x.fold<double>(0.0, (a, b) => a + b.dist);
    
    1. 明确定义tot变量类型:
    double tot = x.fold(0.0, (a, b) => a + b.dist);
    

    【讨论】:

      猜你喜欢
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2021-07-14
      • 1970-01-01
      • 2019-02-18
      • 2021-12-10
      • 1970-01-01
      相关资源
      最近更新 更多