在ruby中經常可以見到這樣的寫法:
class A
class << self
def hello
puts "hello"
end
end
end
這樣的寫法和
class A
def self.hello
puts "hello"
end
end
可以說是完全一樣的。第一種寫法的一個好處是,如果需要在一個class或者module裏面定義多個類級別的方法, 這種寫法可以少寫很多個"self." :)
還有一個好處是,可以使用attr_reader/attr_accessor 之類的meta programming的method.