如何将列表字段迁移到空安全
How to migrate List fold to null saftey
此代码在没有空安全的情况下运行良好:
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'。
尝试向目标 ('!') 添加空检查。
不知道 who/what 目标是什么,或者是接收者。我已经阅读了所有关于空安全的 Dart material,但无法将其构建为箭头表达式 (=> a + b.dist).
感谢您的帮助!
您可以选择以下方法之一:
- 显式定义
fold
方法类型参数:
var tot = x.fold<double>(0.0, (a, b) => a + b.dist);
- 明确定义
tot
变量类型:
double tot = x.fold(0.0, (a, b) => a + b.dist);
此代码在没有空安全的情况下运行良好:
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'。 尝试向目标 ('!') 添加空检查。
不知道 who/what 目标是什么,或者是接收者。我已经阅读了所有关于空安全的 Dart material,但无法将其构建为箭头表达式 (=> a + b.dist).
感谢您的帮助!
您可以选择以下方法之一:
- 显式定义
fold
方法类型参数:
var tot = x.fold<double>(0.0, (a, b) => a + b.dist);
- 明确定义
tot
变量类型:
double tot = x.fold(0.0, (a, b) => a + b.dist);