[讀書筆記]Ruby元編程 01

--方法

Object # instance_variables 列出對象變量

Object # instance_methods 列出對象方法

Object # ancestors 列出祖先鏈

Array # grep 列出指定參數 


--總結

對象由一組實例變量和一個類的引用組成

對象的方法存在於對象所屬的類中(從類的角度看,他們叫做實例方法)

類本身是Class類的對象。類的名字不過是一個常量而已。

Class類是Module的子類。一個模塊基本上是由一組方法組成的包。類出了具有模塊的特性之外,還可以被實例化(通過new()方法)及被組織爲層次結構(通過他的superclass()方法)

常量像文件系統一樣,是按照樹形結構組織的。其中模塊和類的名字扮演目錄的角色,其他普通的常量則扮演文件的角色。

每個類都有一個祖先鏈,這個鏈從自己所屬的類開始,向上直到BasicObject類結束。(具體根據Ruby版本 可能有變動)

當調用一個方法時,Ruby首先向右一步來到接受者所屬的類,然後一直向上查找祖先鏈,直到找到該方法,或則到達鏈的頂端爲止。

當調用一個模塊時,該模塊會被插入到祖先鏈中,位置在該類的正上方。

當調用一個方法時,接受者會扮演self的角色。

當定義一個模塊(或者類)時,該模塊扮演self的角色。

實例變量永遠都被認定爲self的實例變量。

任何沒有明確指定接受者的方法調用,都當成是調用self的方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章