1

我正在使用红宝石 1.8.7

my_array = Array.new(5, "A")

工作正常。但是,如果我像这样扩展 Array 类:

class Array
  def my_function
    self
  end
end

然后初始化程序不再工作并返回

wrong number of arguments (2 for 0)

为什么会这样,我该如何解决?

4

1 回答 1

3

你在里面做这个Module吗?如果是这样,您将定义一个单独的Array类,而不是Array从标准库扩展。

确保您的扩展程序位于顶层,否则编写:

class ::Array

(顺便说一句,你想使用 Ruby 1.8.7 有充分的理由吗?如果没有,我建议你使用最新版本——Ruby 多年来一直在改进。)

于 2012-07-25T04:31:47.040 回答