即使我不能创建模块的实例,我怎么可能在模块中有实例变量?下面单元Stacklike
中@stack
的目的是什么?
module Stacklike
def stack
@stack ||= []
end
end
即使我不能创建模块的实例,我怎么可能在模块中有实例变量?下面单元Stacklike
中@stack
的目的是什么?
module Stacklike
def stack
@stack ||= []
end
end
将实例变量视为包含模块的任何类中都会存在的变量,这样就更有意义了:
module Stacklike
def stack
@stack ||= []
end
def add_to_stack(obj)
stack.push(obj)
end
def take_from_stack
stack.pop
end
end
class ClownStack
include Stacklike
def size
@stack.length
end
end
cs = ClownStack.new
cs.add_to_stack(1)
puts cs.size
将输出"1"