ruby - 如何将 attr_accessor 赋予 ruby​​ 类中的所有实例变量

标签 ruby

class A
   attr_reader :foo, :bar
   def initialize
      @foo = "foo"
      @bar = 2
      .....
      .....
      # many variables like this
   end
end

在这个类中有 2 个变量。我想将 attr_accessor 赋予所有实例变量,如“attr_accessor *”。这可能吗?

最佳答案

你想要的已经实现了,它叫做 OpenStruct

require 'ostruct'
a = OpenStruct.new(foo: 1, bar: 2)
a.foo # => 1
a.bar # => 2

(至少,我猜这就是你想要的)

关于ruby - 如何将 attr_accessor 赋予 ruby​​ 类中的所有实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44607287/

相关文章:

javascript - 如何使用<audio>标签html5再现声音序列

ruby - 如何将 Ruby 程序的输出重定向到某个文件

ruby-on-rails - RVM gem 权限错误

ruby - 我可以做 hash.has_key 吗? ('video' 或 'video2' ) ( ruby )

javascript - JSON 到对象数组格式

ruby-on-rails - 无法将自定义字段添加到 Ruby on Rails 中的 Devise 模型。私有(private)方法错误

Ruby 语句链

ruby - SQLite 和 Ruby 救援

mysql - Snow Leopard 上的 ruby​​/rails/mysql 性能下降

ruby - 如何在没有新 key 的情况下合并两个散列