Dart & Flutter报错:参数类型'int?'无法分配给参数类型'num'
问题解决:参数类型'int?'无法分配给参数类型'num'
错误原因
你写的三目运算符逻辑完全搞反了:
- 当
k != null时,你写的是x + y(不加k) - 当
k为null时,反而去执行x + y + k,此时k是null,无法和int类型的数值相加,直接触发类型错误。
修复方案
方案1:修正三目运算符逻辑
把判断分支的执行内容调换,确保只有k非空时才参与相加:
void printSum({int x = 5, int y = 6, int? k}) { int sum = (k != null) ? (x + y + k) : (x + y); print(sum); }
方案2:用空合并运算符简化代码
直接给k设置默认值0,无需额外判断,代码更简洁:
void printSum({int x = 5, int y = 6, int? k}) { int sum = x + y + (k ?? 0); print(sum); }
??是空合并运算符,作用是:如果左侧的k不为null就取k的值,为null则取右侧的0,完美解决可空类型的运算问题。
内容的提问来源于stack exchange,提问作者Rajiv Iyer
相关产品推荐
相关产品推荐

