我正在使用ruby 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)
为什么会这样,我该如何解决?
答案 0 :(得分:3)
你是在Module
内做的吗?如果是这样,您将定义一个单独的Array
类,而不是从标准库中扩展Array
。
确保您的扩展程序位于顶层,否则请写下:
class ::Array
(顺便说一下,你有没有理由想要使用Ruby 1.8.7?如果没有,我建议使用最新的版本 - 多年来Ruby已经有所改进。)