在ruby裡self指的是代表,當前指向的物件,這句話可能不是很好理解,我們可以用下面的例子來實驗。
以下的例子,我們直接在頂層使用self來看當前指向的物件是誰,從輸出結果可以看到,指向的對象是main這個物件。
那我們可以用.class來看一下main是屬於哪一個類別,從以下結果可以看到main是Object實體。
無聊的話也可以在class接ancestors來看看他的祖宗十八代XDDD
而self除了以上的用法之外,我們最常用的地方就是在定義類別方法的時候會用到,以下定義類別方法的方式大家應該都很眼熟~~
而其中的self都指向哪個物件呢,我們在改一下範例來測試看看~
以上三種例子的輸出結果,都是指向Hello這個類別!!!!
除了直接在類別裡面使用self之外,我們也可以實體方法裡面使用self來看看會指向哪裡,直接改一下上面的例子就可以了。
建立實體並呼叫實體上的方法。
從輸出結果來看,在實體方法裡面使用self,會指向m1這個實體上。
上述的實驗裡可以看出self在不同的層級裡所對應的物件不一樣~~