如果我@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