Avatar ·

فحص نوع الفئة في switch في Swift: كيفية مقارنة مثيل بنوع؟

مرحباً بالجميع! أنا مبتدئ في Swift وواجهت مشكلة أثناء العمل مع الفئات و switch. لدي تسلسل هرمي للفئات: الفئة الأساسية `Animal` وفئاتها الفرعية `Dog` و `Cat` و `Bird`. أحصل على مصفوفة `[Animal]` وأريد تنفيذ إجراءات مختلفة لكل عنصر بناءً على نوعه الفعلي. في Objective-C كنت أستخدم `isKindOfClass:`، لكن هذا لا يعمل في Swift. هذا هو الكود الحالي الذي لا يتم تجميعه: ```swift class Animal {} class Dog: Animal {} class Cat: Animal {} class Bird: Animal {} let animals: [Animal] = [Dog(), Cat(), Bird(), Dog()] for animal in animals { switch animal { case is Dog: print("Гав!") case is Cat: print("Мяу!") case is Bird: print("Чирик!") default: print("Неизвестное животное") } } ``` الخطأ: `'is' patterns may only appear in a case of a 'switch' statement, not in a 'for' loop`. لكنني أستخدم switch داخل for! ما المشكلة؟ كيف أتحقق من النوع بشكل صحيح؟