module Mod
var = 2
end
class Person
include Mod
puts var
end
简单的问题。为什么我不能访问从模块导入的局部变量?
答案 0 :(得分:5)
因为它是一个局部变量。这就是他们的目的。局部变量是它们定义的词法范围的局部变量。这就是它们被称为局部变量的原因。
答案 1 :(得分:3)
当您在另一个模块或类中包含模块时,此模块的Ruby’s default implementation is to add the constants, methods, and module variables为mod(包含模块的地方)尚未添加到mod或其中一个祖先。
在您的情况下,var
是模块Mod
的局部变量,因此无法通过行Person
将其包含在类include Mod
中。