【发布时间】:2013-07-25 13:02:44
【问题描述】:
我对 Array 对象有新的要求。所以我需要将自己的方法添加到内置的 Array 类中。
如何添加一个新方法,这样无论我创建什么 Array 对象,它都会有我的实例方法?
【问题讨论】:
-
谷歌“红宝石公开课”
-
它被称为monkey patching,并且一直在完成。核心类并没有什么特别之处可以阻止您向它们添加方法。
我对 Array 对象有新的要求。所以我需要将自己的方法添加到内置的 Array 类中。
如何添加一个新方法,这样无论我创建什么 Array 对象,它都会有我的实例方法?
【问题讨论】:
class Array
def mymethod
#implementation
end
end
【讨论】:
Array 类,所有构建在 Array 方法中。
其他答案基本上表明您可以通过重新定义类来向类添加方法,只是添加到该类中,示例可能是这样的:
class Array
def third
size > 2 ? self[2] : nil
end
end
a = [1, 2, 3, 4, 5]
puts a.third
【讨论】: