加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在ruby中获取attr_accessor / instance变量

发布时间:2020-12-17 04:35:10 所属栏目:百科 来源:网络整理
导读:所以我知道你可以通过调用#instance_variables来获取 Ruby中的所有实例变量,但是如果它们尚未设置,那么它们就不会显示出来. 例 class Walrus attr_accessor :flippers,:tusksendw = Walrus.neww.instance_variables # = []w.tusks # = nilw.instance_variabl
所以我知道你可以通过调用#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]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读