gpt4 book ai didi

ruby - 扩展数组隐藏初始化程序?

转载 作者:太空宇宙 更新时间:2023-11-03 18:25:34 24 4
gpt4 key购买 nike

我正在使用 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)

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

最佳答案

您是在 Module 中执行此操作吗?如果是这样,您将定义一个单独的 Array 类,而不是从标准库扩展 Array

确保你的扩展在顶层,否则写:

class ::Array

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

关于ruby - 扩展数组隐藏初始化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11642728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com