1

我想在运行时在吱吱声中添加一个类方法。我知道有一个方法compile,它是在Behavior类中定义的,但是这个在类Instance方法中添加了我想要的新方法。有没有办法将它编译为类方法(所以它将是为类定义的方法,而不是为类的实例定义的方法)。

谢谢,

4

1 回答 1

2

因为每个类本身都是一个对象,所以一个类本身也有一个类。此类是 的实例Metaclass,它继承自Behavior。因此,您可以#compile:在类的类上使用类方法,就像在类上使用实例方法一样。

一个简单的例子:

上的实例方法Number

Number compile: 
'succ
   ^ self + 1
'

一个类方法Number class

Number class compile:
'one
    ^ self zero + 1
'
于 2013-05-07T11:21:09.600 回答