ruby - 类主体可执行的意义是什么?

标签 ruby

类主体是可执行的,如下代码所示:

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/

相关文章:

html - 如何使用 Nokogiri 解析 Wikipedia 中的深度嵌套文本?

sql - 如何拨驼峰柱

ruby-on-rails - rails : undefined method `+' for nil:NilClass

mysql - 带有遗留数据库的回形针

ruby - 如何在 Ruby 中获取当前文件和行号?

ruby-on-rails - 奇怪的 PG::UndefinedTable 错误与 Heroku 上的 Rails 应用程序

ruby - 初学者 RSpec : Need help writing Ruby code to pass RSpec tests (Silly Blocks exercise)

ruby-on-rails - 以部署用户启动 god

javascript - 什么是将事物分类为类型的良好 JavaScript 模式?

ruby - 与 Mechanize 安装的混淆