これRuby スタイルガイドself.method_name
は、 の代わりにを使用する方がよいことを示していますclass method_name
。しかし、なぜでしょうか?
class TestClass
# bad
class << self
def first_method
# body omitted
end
def second_method_etc
# body omitted
end
end
# good
def self.first_method
# body omitted
end
def self.second_method_etc
# body omitted
end
end
パフォーマンスの問題はありますか?
ベストアンサー1
class << self
すべてのクラス メソッドを同じブロック内に保持するのに適しています。フォーム内でメソッドが追加される場合は、def self.method
(慣習と希望的観測を除いて) ファイルの後半に余分なクラス メソッドが隠されないという保証はありません。
def self.method
は、メソッドがクラスメソッドであることを明示的に示すのに優れていますが、 では、class << self
コンテナーを自分で探す必要があります。
これらのうちどれがより重要であるかは主観的な判断であり、他に何人の人がコードに取り組んでいるか、またその人の好みは何かといった要素によっても異なります。