如果我@x
在父类中延迟加载A
它可以调用和初始化就好了,但是如果我尝试从A
子类调用它B
,那么它不会调用@x
初始化方法并返回nil
。这是为什么?
class A
def x
@x ||= 'x'
end
end
puts A.new.x # 'x'
class B < A
def use_x
puts @x.inspect # nil
end
end
如果我@x
在父类中延迟加载A
它可以调用和初始化就好了,但是如果我尝试从A
子类调用它B
,那么它不会调用@x
初始化方法并返回nil
。这是为什么?
class A
def x
@x ||= 'x'
end
end
puts A.new.x # 'x'
class B < A
def use_x
puts @x.inspect # nil
end
end