検討
# 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
参照されなくなったときにさらにガベージ コレクションを取得するようにするにはどうすればよいでしょうか?