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

Ruby调用方法报ArgumentError wrong number of arguments错误如何解决

错误触发原因

  • Ruby语法规定方法调用时,方法名和参数括号之间不能加空格。你写的visualization (name = 'Mary', age = 5, looks = 'bad')中,visualization和后面的括号之间多了空格,Ruby会把括号内的所有内容判定为单个表达式处理。
  • 括号内的name = 'Mary', age = 5, looks = 'bad'属于并行赋值表达式,最终返回值是最后一个赋值的'bad',相当于你只给方法传入了1个参数,和方法定义要求的3个参数不匹配,因此抛出ArgumentError。
  • 额外需要注意:你原代码中的age.to_s是无效操作,没有赋值给任何变量,后续字符串拼接时age还是Integer类型,直接和字符串拼接会触发TypeError,也需要同步修正。

修复方案

方案1:删除方法名和参数括号之间的空格

删掉visualization和参数括号的空格即可,同时修正字符串拼接的类型问题:

def visualization(name, age, looks)
  puts name + ' is ' + age.to_s + ' years old and looks ' + looks
end

# 直接传参即可,参数位置的赋值属于多余操作
visualization('Mary', 5, 'bad')

方案2:调用方法时省略括号(符合Ruby通用编码风格)

Ruby中方法调用无歧义时可以省略参数括号,搭配字符串插值写法更简洁,不需要手动做类型转换:

def visualization(name, age, looks)
  puts "#{name} is #{age} years old and looks #{looks}"
end

visualization 'Mary', 5, 'bad'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:54:04