Ruby => self介紹

ck100pro
ck100pro
Published in
3 min readFeb 8, 2020

在ruby裡self指的是代表,當前指向的物件,這句話可能不是很好理解,我們可以用下面的例子來實驗。

以下的例子,我們直接在頂層使用self來看當前指向的物件是誰,從輸出結果可以看到,指向的對象是main這個物件。

那我們可以用.class來看一下main是屬於哪一個類別,從以下結果可以看到main是Object實體。

無聊的話也可以在class接ancestors來看看他的祖宗十八代XDDD

而self除了以上的用法之外,我們最常用的地方就是在定義類別方法的時候會用到,以下定義類別方法的方式大家應該都很眼熟~~

方法一
方法二

而其中的self都指向哪個物件呢,我們在改一下範例來測試看看~

修改方法一
修改方法二
增加方法三

以上三種例子的輸出結果,都是指向Hello這個類別!!!!

除了直接在類別裡面使用self之外,我們也可以實體方法裡面使用self來看看會指向哪裡,直接改一下上面的例子就可以了。

建立實體並呼叫實體上的方法。

從輸出結果來看,在實體方法裡面使用self,會指向m1這個實體上。

上述的實驗裡可以看出self在不同的層級裡所對應的物件不一樣~~

--

--