0
在IRB控制檯我創建一個類「你好」紅寶石方法作爲實例方法以及
irb(main):001:0> class Hello
irb(main):002:1> end
=> nil
和創建「你好」類以外的一個方法名爲「喜」
類的方法irb(main):003:0> def hi
irb(main):004:1> 'hiiii'
irb(main):005:1> end
=> :hi
現在這種方法喜充當類方法以及實例方法
irb(main):006:0> Hello.hi
=> "hiiii"
irb(main):007:0> Hello.new.hi
=> "hiiii"
irb(main):008:0> hi
=> "hiiii"
爲什麼這種方法喜爲g et'使用類'Hello'調用,即使它在'Hello'類上下文之外?
還有一件事在這裏玩。在頂層定義的方法成爲'Object'的* private *實例方法,這意味着這兩個調用*應該引發一個異常「private method called」。 **但是在這方面** ** IRb(和* only * IRb)的行爲與Ruby不同,並且使它們公開。所以,當且僅當您在IRB中嘗試它時,它纔有效。 –