Ruby 参数数目错误(0表示2)

Ruby 参数数目错误(0表示2),ruby,Ruby,我目前正在从事一个小型学校项目(Ruby),但我遇到了一个错误(参数数量错误(0代表2)),这让我想翻动一张表:( 这是我正在尝试使用的代码: puts "How much does the product cost?" price = gets.to_f.round puts "How much money will you give for it?" money = gets.to_f change = calculate_change(price, money) 我使用它来获取用户输

我目前正在从事一个小型学校项目(Ruby),但我遇到了一个错误(参数数量错误(0代表2)),这让我想翻动一张表:(

这是我正在尝试使用的代码:

puts "How much does the product cost?"
price = gets.to_f.round

puts "How much money will you give for it?"
money = gets.to_f

change = calculate_change(price, money)
我使用它来获取用户输入,将第一个四舍五入为fixnum,然后将第二个四舍五入为float。我的calculate_change方法是这样的:

def calculate_change(price, money)
    return money - price
end

根据@hirolau的评论,您需要确保在调用它之前声明
calculate\u change()

def calculate_change(price, money)
    money - price                    # return is optional in Ruby!
end

puts "How much does the product cost?"
price = gets.to_f.round

puts "How much money will you give for it?"
money = gets.to_f

change = calculate_change(price, money)

这段代码对我有用。你确定你在尝试调用它之前声明了calculate_change吗?天哪,我为什么不这么做。谢谢你。XDWill会的,lesson Lead,谢谢。另外,只是风格上的一点,
return
在Ruby中是假定的。你可以把
money-price
放在Ruby中,因为这会返回答案,一个方法将return是它计算的最后一个东西。(我知道有更好的说法…)我不知道返回的东西,我必须说很好。谢谢:)为什么你得到的是“错误的参数数”而不是“没有这样的函数…”之类的东西?@sam我想OP一定使用了旧版本的Ruby。使用2.2.0,我得到了
未定义的方法