当我有一个包含几个自我方法的类和非自我方法时,如下所示:
class Employee
def self.hello
puts "greet our employee"
end
def not_self
puts "this is not a self method"
end
end
如果通过not_self
调用Employee.new.not_self
方法,所有类方法是否仍会加载到内存中并且会对性能产生影响吗?
答案 0 :(得分:1)
如果
not_self
方法是通过Employee.new.not_self
调用的,那么所有类方法是否仍然会被加载到内存中[...]
当Ruby评估您的代码时,它会创建一个新类并将其分配给常量Employee
。然后,它会创建两个方法hello
和not_self
。
通过定义方法(通过def ...
)而不是通过调用它们来创建方法。你之后是否打电话是无关紧要的。
[...]并且有性能影响吗?
不是,因为方法只存储一次。