数组初始化和方法计数增加?秘密是什么?

时间:2011-09-26 07:49:54

标签: ruby arrays methods initialization

这个问题可能很奇怪,或者我很愚蠢。

>> Array.methods.count
=> 97
>> a = Array.new.methods
=> 167

在初始化和分配数组后,导致方法数量增加的原因。

1 个答案:

答案 0 :(得分:5)

你在计算两件事:类方法和实例方法。您可以将其与instance_methods

进行比较
p Array.methods.count          #->  97
p Array.instance_methods.count #-> 167
p Array.new.methods.count      #-> 167

或者看看new是否是一种有效的方法:

p Array.methods.include?(:new) #true
p Array.instance_methods.include?(:new) #false

new仅在类上定义,而不是在实例中定义。