Smalltalkでこれを行う簡単な方法はありますか?なんらかの方法があると80%確信していますが、どこにも見つかりません。
使えることはわかっている
(instance class = SomeClass) ifTrue:
そして、私は私が使用できることsuperclass
などを知っています...しかし、私は何かが組み込まれていることを願っています:)
anObjectがaClassのインスタンスであるかどうかをテストするには、次のようにします。
(anObject isMemberOf: aClass)
それがaClassのインスタンスであるか、そのサブクラスの1つであるかをテストするには、次のようにします。
(anObject isKindOf: aClass)
あなたは正しいです、あなたが使用する正確なクラスをチェックするために(代わりにアイデンティティを使用して):
インスタンスクラス==SomeClassifTrue:[]
UsefullはisKindOf:
、インスタンスが特定のクラスのクラスまたはサブクラスであるかどうかをテストするものでもあります。
(インスタンスisKindOf:SomeClass)ifTrue:[]
最も優れた最も洗練された方法は、スーパークラスとピアクラスでテストメソッドを記述し、次のように使用することです。
インスタンスisSomeClassifTrue:[]