在Ruby 1.8中,proc/lambda与另一方面之间存在细微差别Proc.new.
包含模块如何影响范围?具体来说,在这个例子中:
module ModuleA
class ClassA
def initialize
puts "test passed"
end
end
end
module ModuleB
include ModuleA
# test 1
C = ClassA.new
class ClassB
def initialize
c = ClassA.new
end
end
end
# test 2 and 3 fail without this
#include ModuleB
module ModuleC
# this doesn't help
include ModuleB
# test 2
ClassB.new
# test 3
ModuleB::ClassB.new
end
Run Code Online (Sandbox Code Playgroud)
测试1工作正常,但测试2和测试3失败而没有注释掉import ModuleB.
ClassA在ModuleB(测试1)范围内但不在ClassB?import ModuleB把 …