Có cách nào dễ dàng để thực hiện điều này trong Smalltalk không? Tôi chắc chắn rằng 80% có một số phương pháp nhưng không thể tìm thấy nó ở bất cứ đâu.Kiểm tra xem một đối tượng có phải là một thể hiện của một lớp cụ thể hoặc của một phân lớp của nó
tôi biết rằng tôi có thể sử dụng
(instance class = SomeClass) ifTrue:
Và tôi biết rằng tôi có thể sử dụng superclass
vv ... nhưng tôi hy vọng rằng có cái gì đó được xây dựng trong :)
Nicest và thanh lịch nhất là không hỏi , ví dụ: thay vì: đối tượng isSomething ifTrue: [làm điều gì đó] sử dụng: đối tượng doSomething –
Tôi đồng ý với Igor. Hơn nữa, "đẹp nhất và thanh lịch nhất" là trong mắt của khán giả. WhatInteger và bạn bè làm chắc chắn là * nhanh hơn * vì chúng là một tin nhắn đơn gửi trả về true/false so với isKindOf: nó phải lặp lại hệ thống phân cấp lớp. Nhược điểm của một số người là bạn phải thêm một phương thức isSomeClass vào Object để trả về false. –