类主体是可执行的,如下代码所示:
3.times do
class C
puts "hello"
end
end
那有什么意义呢?我不明白类的意义 body 是可执行的。是不是因为我们需要顶部的代码 要执行的级别,还是能够返回一个值?如果这不是唯一的原因,是否有一个很好的例子来证明这是一个绝妙的主意?
最佳答案
举几个简单的例子:
它允许像属性访问器这样的东西工作:
class Dog
attr_reader :name
end
attr_reader
和该系列中的其他方法只是在 self
是类对象的上下文中执行的方法。它们不是声明;它们实际上在类正在执行时执行。因此,它取决于 Ruby 在定义类时调用方法的能力。
它允许条件定义:
class OptimisedClass
if defined? JRUBY_VERSION
def do_stuff
jruby_optimised_stuff
end
else
def stuff
c_optimised_stuff
end
end
end
关于ruby - 类主体可执行的意义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29621200/