13

Smalltalkでこれを行う簡単な方法はありますか?なんらかの方法があると80%確信していますが、どこにも見つかりません。

使えることはわかっている

(instance class = SomeClass) ifTrue:

そして、私は私が使用できることsuperclassなどを知っています...しかし、私は何かが組み込まれていることを願っています:)

4

2 に答える 2

20

anObjectがaClassのインスタンスであるかどうかをテストするには、次のようにします。

(anObject isMemberOf: aClass)

それがaClassのインスタンスであるか、そのサブクラスの1つであるかをテストするには、次のようにします。

(anObject isKindOf: aClass)
于 2012-12-08T17:11:33.497 に答える
5

あなたは正しいです、あなたが使用する正確なクラスをチェックするために(代わりにアイデンティティを使用して):

インスタンスクラス==SomeClassifTrue:[]

UsefullはisKindOf:、インスタンスが特定のクラスのクラスまたはサブクラスであるかどうかをテストするものでもあります。

(インスタンスisKindOf:SomeClass)ifTrue:[]

最も優れた最も洗練された方法は、スーパークラスとピアクラスでテストメソッドを記述し、次のように使用することです。

インスタンスisSomeClassifTrue:[]

于 2012-12-08T17:13:17.520 に答える