Czy istnieje prosty sposób to zrobić w Smalltalk? Mam 80% pewności, że istnieje pewna metoda, ale nie mogę jej nigdzie znaleźć.Sprawdź, czy obiekt jest instancją danej klasy lub podklasy nim
wiem, że mogę używać
(instance class = SomeClass) ifTrue:
I wiem, że mogę używać superclass
etc ... ale mam nadzieję, że coś jest zbudowane w :)
najpiękniejszych i najbardziej elegancki jest nie zapytać , powiedz, np: zamiast: obiekt isCoś się dzieje, jeśli jest prawdą: [zrób coś] użyj: obiekt doSomething –
Zgadzam się z Igorem. Co więcej, "najpiękniejszy i najbardziej elegancki" jest w oku patrzącego. To, co robiąInteger i przyjaciele, jest zdecydowanie * szybsze *, ponieważ są one pojedynczą wysyłaną wiadomością, która natychmiast zwraca wartość true/false versus isKindOf: która musi zapętlić hierarchię klas. Minusem dla niektórych osób jest to, że musisz dodać metodę IsSomeClass do obiektu, który zwraca wartość false. –