考虑
# sun.rb
class Sunshine
def bright?
return true
end
end
def greeting(greeter)
puts "hello, Sun from #{greeter}"
end
# main.rb
def abc
my_load "sun.rb"
greeting("abc")
return Sunshine.new
end
s = abc
puts s.bright?
greeting("Adrian")
...
我可以在my_load
这里有这样一个greeting("abc")
调用成功,但后者greeting("Adrian")
导致 NoMethodError;但puts s.bright?
通话成功。
所以,综合来说:sun.rb 中的类和方法都在调用者的范围内,my_load
这样它们在不再被引用时也会被垃圾收集?