[Ruby] irb起動直後に自分がいるのはどこ?自分自身(self)はなに?
mac 😈 ~ % irb
irb(main):001:0> どこ?なに?
Rubyではクラス構文やモジュール構文に囲まれていない1番外側の部分のことを(irbでは起動した直後にいる場所)トップレベルという。
そして、トップレベルにはmain
という名前のObjectクラスのインスタンスがself
として存在している。
mac 😈 ~ % irb
irb(main):003:0> self
=> main
irb(main):004:0> self.class
=> Object
よって、
- どこ? = トップレベル
- なに? = Objectクラスのインスタンス
ちなみに、トップレベルでp
メソッドyaputs
メソッドが使えるのは、ObjectクラスがKernelモジュールをincludeしているため。 <- 呼び出し方はクラスメソッド(クラスの得意メソッド)になっているので、正確にはextendしている??
*Kernelモジュールにp
やputs
メソッドが含まれている。