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

Dart代码报错:预期2个位置参数但找到0个,请求技术支持

错误原因与修复方案

1. 参数传递不匹配导致的「2 positional arguments expected, but 0 found」错误

你定义的add函数使用的是位置参数(int n1, int n2),但调用时误用了命名参数的语法(add(n1: 5, n2: 9))。Dart会将这种调用判定为未传递任何位置参数,因此抛出该错误。

修复方式二选一:

  • 方式一:保持位置参数,修改调用方式
    直接按参数顺序传递值,无需指定参数名:
    int step1Result = add(5, 9);
    
  • 方式二:修改函数为命名参数定义
    用大括号包裹参数,Dart 2.12及以上版本需添加required关键字确保参数必传:
    int add({required int n1, required int n2}) {
      // 函数体
    }
    

2. 缺少return语句导致的返回值异常

add函数声明返回int类型,但你仅写了n1 + n2;却未返回计算结果,这会导致运行时抛出异常(非空返回类型的函数必须返回对应类型的值)。

修复方法:添加return关键字返回计算结果:

int add(int n1, int n2) {
  return n1 + n2;
}

完整修复代码示例

位置参数版本

int add(int n1, int n2) {
  return n1 + n2;
}

void main() {
  int step1Result = add(5, 9);
  print(step1Result); // 输出14
}

命名参数版本

int add({required int n1, required int n2}) {
  return n1 + n2;
}

void main() {
  int step1Result = add(n1: 5, n2: 9);
  print(step1Result); // 输出14
}

内容的提问来源于stack exchange,提问作者Miguel Linera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:09:22