You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:38:14