在ruby中获取attr_accessor / instance变量

前端之家收集整理的这篇文章主要介绍了在ruby中获取attr_accessor / instance变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我知道你可以通过调用#instance_variables来获取 Ruby中的所有实例变量,但是如果它们尚未设置,那么它们就不会显示出来.

class Walrus
  attr_accessor :flippers,:tusks
end

w = Walrus.new
w.instance_variables # => []
w.tusks              # => nil
w.instance_variables # => [:@tusks]

我想立即访问attr_accessor定义的所有实例变量.

w = Walrus.new
w.instance_variables # => [:@tusks,:@flippers]

解决方法

嗯,它们还不存在.实例变量在第一次分配时就会存在.如果您想在全新的实例中使用它们,请在构造函数中触摸它们.
class Walrus
  attr_accessor :flippers,:tusks

  def initialize
    self.flippers = self.tusks = nil
  end
end

w = Walrus.new
w.instance_variables # => [:@tusks,:@flippers]

猜你在找的Ruby相关文章