Ruby类方法设置

cod*_*oob 4 ruby methods syntax class

我正在浏览Ruby Koans Ruby Koans并且我在"about_class_methods.rb"中的一个地方,其中讨论了设置类方法,Koans谈论了三种方法.

编写类方法的两种主要方法是:

1:

class Demo (define/open class)
  def self.method
end
Run Code Online (Sandbox Code Playgroud)

2:

  class << self
    def class_methods
    end
  end
Run Code Online (Sandbox Code Playgroud)

公案还谈到第三种方法,我从未见过(我记得):

def Demo.class_method_third_way
end
Run Code Online (Sandbox Code Playgroud)

Q1第三种方式对我来说实际上比任何其他方式更清晰.有什么理由我不明白为什么没有人使用它?

Q2为什么我认为2的语法应该是"self << def name end"?那就是"为什么语法是这样的呢?" 类Object是否包含对所有类的引用,这是否适用于自我类的方法?

一如既往,感谢您的帮助和耐心!

ste*_*lag 6

在(早期)开发类中,随着洞察力的增长Person而重命名(不是但Employee不是Job一个或多个Roles等).如果类名在类本身中被硬编码,则这种重命名很容易出错.