i have some code in Ruby here below:
class A
@@lock = Monitor.new
class B
def method
@@lock.synchronize
puts "xxxxx"
end
end
end
end
after running it throws an error which said that below:
uninitialized class variable @@lock in A::B (NameError)
if i want to know how to access the outer class A's class variable @@lock from inner class B's method, how to do it? thank you in advance.
The only way to access this class variable is via an accessor method
I don't think you can without defining an accessor.
Class
B
is lexically scoped inside of A, so its real name is A::B and various other things are different.But it's not a child or any other sort of derived class, so it doesn't actually have any special rights to see private or protected or otherwise local elements of A.