Pharo:指的是 class 名称而不是 "self class"
Pharo: Refers to class name instead of "self class"
我有一个简单的 class Amount
,其中包含字段 value
和 unit
以及相应的访问器。现在我想创建一个 class 方法来构造数量对象,如下所示:
value: aValue unit: anUnit
| amount |
amount := Amount new .
amount value: aValue ; unit: anUnit .
^ amount
我收到警告消息 Refers to class name instead of "self class"
。我该如何改进呢?我尝试了 amount := (self class) new
,但随后出现错误 A Metaclass should only have one instance!
。 (请注意,我对 Pharo 和 Smalltalk 很陌生)
Refers to class name instead of "self class"
是一个提示,建议你使用
amount := self new.
而不是
amount := Amount new.
由于你的方法是class方法,self
指的是class。
在 class 方法中,(self class) new
(在您的示例中)与 Amount class new
相同。 class(金额)的 class 是元 class,因此您引用的错误消息。
我有一个简单的 class Amount
,其中包含字段 value
和 unit
以及相应的访问器。现在我想创建一个 class 方法来构造数量对象,如下所示:
value: aValue unit: anUnit
| amount |
amount := Amount new .
amount value: aValue ; unit: anUnit .
^ amount
我收到警告消息 Refers to class name instead of "self class"
。我该如何改进呢?我尝试了 amount := (self class) new
,但随后出现错误 A Metaclass should only have one instance!
。 (请注意,我对 Pharo 和 Smalltalk 很陌生)
Refers to class name instead of "self class"
是一个提示,建议你使用
amount := self new.
而不是
amount := Amount new.
由于你的方法是class方法,self
指的是class。
在 class 方法中,(self class) new
(在您的示例中)与 Amount class new
相同。 class(金额)的 class 是元 class,因此您引用的错误消息。