我是 Ruby 初学者。我发现这两者非常相似(在输出中),但我无法理解以下上下文中的差异。例如,我有一堂课
class Say
def self.hello
puts "hello"
end
end
并且可以像这样扩展
class << Say
def hi
puts "hi"
end
end
也像这样
Say.class_eval do
def self.bye
puts "bye"
end
end
我应该什么时候使用<<
,什么时候使用class_eval
?