Flutter类型转换错误:期望String类型,实际得到int类型
解决Flutter类型转换错误:Expected a value of type 'String', but got one of type 'int'
错误根源很明确:你在calci()里调用int.parse()去解析cartitem[i][1]和cartitem[i][4],但这两个元素本身已经是int类型了——int.parse()只接受字符串参数,自然触发类型不匹配报错。
直接修改calci()函数即可,去掉不必要的int.parse():
修复后的函数(简洁版)
int calci() { int totalPrice = 0; for (int i = 0; i < cartitem.length; i++) { int price = cartitem[i][1] as int; int quantity = cartitem[i][4] as int; totalPrice += price * quantity; } return totalPrice; }
更安全的版本(带类型检查)
如果不确定cartitem里的元素类型是否完全一致,可以加个类型判断,避免强制转换失败崩溃:
int calci() { int totalPrice = 0; for (int i = 0; i < cartitem.length; i++) { final price = cartitem[i][1]; final quantity = cartitem[i][4]; if (price is int && quantity is int) { totalPrice += price * quantity; } else { // 可选:处理异常情况,比如打印日志或跳过该商品 print('商品${i}的价格/数量类型异常'); } } return totalPrice; }
另外你展示结果的代码是没问题的,calci()返回int后调用toString()转成字符串拼接符号,逻辑正确。
内容的提问来源于stack exchange,提问作者PRATHAM GANGWAL
相关产品推荐
相关产品推荐

