Dart中对象列表中对象属性值求和的干净方法
假设我有一个类CartItemDart中对象列表中对象属性值求和的干净方法,dart,Dart,假设我有一个类CartItem class CartItem { final int amount; CartItem({this.amount}); } 以及cartItems列表中的两个CartItem实例 CartItem itemOne = CartItem(amount: 10); CartItem itemTwo = CartItem(amount: 25); List<CartItem> cartItems = [itemOne, itemTw
class CartItem {
final int amount;
CartItem({this.amount});
}
以及cartItems列表中的两个CartItem实例
CartItem itemOne = CartItem(amount: 10);
CartItem itemTwo = CartItem(amount: 25);
List<CartItem> cartItems = [itemOne, itemTwo];
CartItemOne=CartItem(金额:10);
CartItem2=CartItem(金额:25);
List cartItems=[itemOne,itemTwo];
获取cartItems总量的最干净方法是什么?:
int total=cartItems.fold(0,(总和,项目)=>sum+item.amount);
尝试使用和方法
这对我有用
double total = list.fold(0, (tot, item) => tot.toDouble() + item.amount);
print('Total is $total');
reduce
返回与列表内容类型相同的对象,在本例中为CartItem
。您只能使用它对自身可求和的值列表求和。因此,这段代码不会编译。当然,我以前忘记添加转换了。答案已更新。我刚在dartpad中尝试过。它会导致一个错误:“错误:没有为类‘Object’定义方法“+”@YuriyKots它对我来说很好。我的猜测是您实例化cartItems
的方式,类型推断认为它是List
或List
而不是List
。
double total = list.fold(0, (tot, item) => tot.toDouble() + item.amount);
print('Total is $total');