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

如何从ruby中的内部类访问外部类的类变量

发布时间:2020-12-17 03:26:53 所属栏目:百科 来源:网络整理
导读:我在下面的 Ruby中有一些代码: class A @@lock = Monitor.new class B def method @@lock.synchronize puts "xxxxx" end end endend 运行后抛出一个错误,如下所示: 未初始化的类变量@@ lock in A :: B(NameError) 如果我想知道如何从内部类B的方法访问外部
我在下面的 Ruby中有一些代码:

class A
  @@lock = Monitor.new
  class B
    def method
      @@lock.synchronize
        puts "xxxxx"
      end
    end
  end
end

运行后抛出一个错误,如下所示:

未初始化的类变量@@ lock in A :: B(NameError)

如果我想知道如何从内部类B的方法访问外部类A的类变量@@ lock,该怎么做?先感谢您.

解决方法

访问此类变量的唯一方法是通过访问器方法

class A
   def self.lock
     @@lock ||= Monitor.new
   end

   class B
     def method
       A.lock.synchronize
         puts "xxxxx"
       end
     end
   end
 end

(编辑:李大同)

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

    推荐文章
      热点阅读