When I type self
, I get a return value main
. I made this test:
main2 = Object.new
Then I can call main2
, and it returns something, but when I call main
, it raises an undefined variable error. How does this happen?
Here's the assumption I found in other site about how this top level environment works:
class Object
Object.new.instance_eval do
def self.to_s
"main"
end
private
##
# Your program gets inserted here...
##
end
end
It makes sense to me.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…