我需要知道是否可以将Class作为参数传递给Smalltalk中的方法。例如,
Classname>>method: anObject
self anotherMethod: aClass with: anObject.
Classname>>anotherMethod: aClass with: anObject.
|instance|
instance:= aClass new: anObject aMessage. //supposing "new:" is the instance method of aClass.
instance aMethodFromTheClassRecieved.
答案 0 :(得分:4)
如果你有:
Classname>>anotherMethod: aClass
^ aClass new.
你执行类似的事情:
instance anotherMethod: OrderedCollection
然后你会得到一个OrderedCollection的实例。
在Smalltalk类中也是对象,所以如果你OrderedCollection new
实际上向#new
对象发送了OrderedCollection class
消息。所以你可以像其他对象一样传递类。
P.S。 Smalltalk的主要思想是它具有高度的动态性和实时性。您可以在2-5分钟内尝试一下您要问的事情,看看它是否有效:)
答案 1 :(得分:4)
是。类只是对象。