Gibt es eine einfache Möglichkeit, dies in Smalltalk zu tun? Ich bin zu 80% sicher, dass es eine Methode gibt, die ich aber nirgendwo finden kann.Prüfen, ob ein Objekt eine Instanz einer bestimmten Klasse oder einer Unterklasse davon ist
Ich weiß, dass ich
(instance class = SomeClass) ifTrue:
verwenden kann, und ich weiß, dass ich superclass
usw. verwenden kann ... aber ich hoffe, dass es etwas in :)
Netteste und eleganteste ist nicht zu fragen , sagen Sie, zB: statt: Objekt isSomething ifTrue: [etwas tun] verwenden: Objekt DoSomething –
Ich stimme Igor. Darüber hinaus ist "am schönsten und elegantesten" im Auge des Betrachters. Was istinteger und friends tun, ist definitiv * schneller *, da es sich um eine einzelne Nachricht handelt, die sofort true/false versus isKindOf: zurückgibt, die die Klassenhierarchie durchlaufen muss. Der Nachteil für einige Leute ist, dass Sie eine Object-Methode, die false zurückgibt, eine isSomeClass-Methode hinzufügen müssen. –