Ruby單例元程式設計

2021-10-19 23:50:24 字數 679 閱讀 1847

class_eval不是所有物件都通用的,事實上它作為單例方法被定義在模組類中,所以它只可以被模組或者單例使用。當你在模組中使用這個方法時,它還有乙個別名:module_eval,這個別名可以讓你的**看上去更加簡潔易懂,不過這兩個方法在功能上沒有任何區別。有乙個簡單方法去判斷這些eval方法的上下文,那就是看方法的接收者。這也就是為什麼我們可以使用instance_val訪問例項變數,使用class_eval定義例項方法,呼叫這些方法時,接受者也可以被傳遞給輸入的**塊。在接收方和**塊沒有直接關聯時這個用法很有用。

class widget

attr_accessor(:名字,:數量)

def initialize(&姜修豔)

instance_eval(&姜修豔) if 姜修豔

endend

w=widget.new do |widget|

widget.名字=「elbow grease」

@數量=0

endprint(w.名字)

print(w.數量)

effective ruby-----115頁至116頁—改善ruby程式的48條建議-----【美】彼得.j.瓊斯著----劉璐、楊政權、秦五

一、孟繁超譯

Ruby 元程式設計

ruby 語言在抽象層面有了元程式設計支援,功能相當強大,如果業務模型有很大的相似性,相信元程式設計會讓你節省大量 舉乙個小例如下,這裡只是使用了乙個class eval 還有instance eval,module eval,function.parameters等大量方法可以呼叫 那麼可以設計如...

Ruby元程式設計學習

1.ruby元程式設計的含義 ruby中的元程式設計,是可以在執行時動態的操作語言結構 如類 模組 例項變數等 的技術。你甚至可以在不用重啟的的情況下,在執行時直接鍵入一段新的ruby 並執行他。ruby的元程式設計,也具有 利用 來編寫 的作用,例如,常見的attr accesstor等方法就是如...

ruby的單例方法

begin 在ruby裡,可以給具體的例項物件新增例項方法,這個方法只屬於這個例項 物件,我們把這樣的方法稱之為單例方法。單例方法也叫作單件方法。定義單例方法,首先要生成乙個例項物件,其次,要在方法名前加上物件名和乙個點號 在下面示例中,物件p1不可以laugh laugh方法只屬於p2物件。例項方...