2013-05-07 78 views
1

我想在運行時在squeak中添加一個類方法。 我知道有一個方法編譯,它是在Behavior類中定義的,但是這個方法將我想要的新方法添加到類Instance方法中。有沒有辦法將它編譯到類方法中(所以它將是爲類定義的方法,而不是類的實例)。在運行時在吱吱聲中編譯類方法

感謝,

回答

2

由於每類本身就是一個對象,一類本身有一個班了。該類是Metaclass的一個實例,它繼承自Behavior。因此,對於類方法,您可以在類的類上使用#compile:,就像在類的實例方法中一樣。

一個簡單的例子:

Number實例方法:

Number compile: 
'succ 
^self + 1 
' 

類方法上Number class

Number class compile: 
'one 
    ^self zero + 1 
' 
相關問題