方法'method'调用在输出中添加额外的单词'Kernel'

时间:2017-11-15 07:56:26

标签: ruby methods

1)以下Method的{​​{1}}对象:

g

有这样的检查,

class Word < Array
  def g
    puts "JJ"
  end
end

w = Word.new([4, 6])

w.method(:g) # => #<Method: Word#g> 的{​​{1}}对象在检查中为何以及如何Method如下所示?

class

2)对于(Kernel)的{​​{1}}对象的检查为何以及如何w.method(:class) # => #<Method: Word(Kernel)#class> Word.method(:class) # => #<Method: Class(Kernel)#class> 代替Method的超类method,如下所示?

Class

1 个答案:

答案 0 :(得分:3)

  1. 方法class似乎来自Kernel模块。它虽然记录在Object类中,正如Kernel文档所述(https://ruby-doc.org/core-2.4.2/Kernel.html)。
  2. 这是因为对象Word属于类Class,在这种情况下,它的超类与它无关。