在ruby中,self.method和类<< self之间的方法有什么区别?

前端之家收集整理的这篇文章主要介绍了在ruby中,self.method和类<< self之间的方法有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
class Foo

  def self.one; 1 end

  class << self
    def two; 2 end
  end

end
puts Foo.singleton_methods.inspect # => ["two","one"]

我被告知上述方法“一”和“二”在概念上是不同的,但我看不到如何.
它们都是单一的方法 – 概念和应用有什么区别?

解决方法

在申请中,没有区别.在概念上,差异是微妙的,但在第一种情况下,您正在当前上下文中运行,并在另一个类实例(实际上是其本体类中的实例方法)中定义方法,而在第二种情况下,您正在输入其他类实例的元类(“Eigenclass”)的上下文,然后定义一个实例方法.

编辑:

我应该补充说,选择课程的原因<<自己在某些情况下是... >定义多个类方法时的清除语法.>除了def my_method之外,您可以在特征类上下文中执行其他类型的代码.例如,您可以在该代码块中说attr_accessor:some_attribute.

猜你在找的Ruby相关文章