此语法在功能上是否等效
def self.included(base)
base.class_eval do
extend ClassMethods
end
end
到此?
def self.included(base)
base.extend ClassMethods
end
答案 0 :(得分:8)
唯一相关的区别是只有类响应“class_eval”,而类和实例都响应“extend”。
如果您不打算将方法与对象实例一起使用,那么它们是等效的,尽管第二个实现可用于将实例方法添加到特定实例,而第一个实现方法则不能。