【问题标题】:Ruby Error: wrong number of arguments (given 4, expected 0) (ArgumentError)Ruby 错误:参数数量错误(给定 4,预期为 0)(ArgumentError)
【发布时间】:2016-11-20 19:17:50
【问题描述】:

我是一名 ruby​​ 初学者,我正在尝试创建一个名为 print 的方法,该方法可以打印给定数组中的所有元素。我希望我的代码得到一个未定义的局部变量错误。

这是我从 Youtube 得到的。这会产生未定义的局部变量错误。

movies = ["good","bad"]

def good_movies
    movies.each do |movies|
        puts "I like #{movie}"
    end
end

good_movies

我正在使用交互式 Ruby。这是我的版本。

numbers = [1,2,3]

def print
    numbers.each do |number|
        puts "#{number}"
    end
end

print 

我收到一个错误:(irb):2:in `print': 参数数量错误(给定 4,预期为 0)(ArgumentError)。为什么我得到这个,而不是未定义的局部变量错误?

发生了什么事?

【问题讨论】:

  • 尽量避免覆盖Kernel方法的方法名称(例如print等)。第二期@Paul Ro 指出如下。
  • 你是对的。我通过更改方法名称解决了它。
  • 您是否粘贴了正确的错误信息?
  • 你必须在你的方法中定义一个参数,然后在调用方法时传递一个可枚举作为参数。

标签: ruby


【解决方案1】:

您必须将参数“数字”传递给print 方法。

numbers = [1,2,3]

def print(nums)
    nums.each do |number|
        puts number
    end
end

然后:

print(numbers)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多