Avatar ·

Swift में ऑब्जेक्ट का प्रकार कैसे निर्धारित करें? (type(of:) और is/as)

सभी को नमस्कार! मैंने अभी-अभी Swift सीखना शुरू किया है और अपना पहला ऐप लिख रहा हूँ। मुझे एक समस्या का सामना करना पड़ा: मुझे यह समझने की आवश्यकता है कि वेरिएबल में किस प्रकार की ऑब्जेक्ट है, खासकर जब मैं protocols या inheritance का उपयोग करता हूँ। यहाँ एक उदाहरण है। मेरे पास एक बेस class `Animal` और दो subclass हैं: `Dog` और `Cat`। मैं एक array बनाता हूँ `let animals: [Animal] = [Dog(), Cat(), Dog()]` और for-in loop में यह निर्धारित करना चाहता हूँ कि कौन कुत्ता है और कौन बिल्ली। अन्य भाषाओं में (जैसे C# में) मैं जाँच के लिए `typeof()` या `is` का उपयोग करता था। Swift में यह कैसे करें? मैंने `if animal is Dog { ... }` लिखने की कोशिश की, लेकिन यह केवल जाँच के लिए काम करता है, प्रकार का नाम स्ट्रिंग के रूप में कैसे प्राप्त करें? मैंने `type(of:)` के बारे में भी सुना है, लेकिन समझ नहीं पाया कि `type(of:)` और `is`/`as` में क्या अंतर है। मुझे केवल जाँच नहीं, बल्कि कभी-कभी ऑब्जेक्ट को कास्ट भी करना होता है।