Swift साक्षात्कार: कोड उदाहरणों के साथ तैयारी के लिए पूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Swift साक्षात्कार में: कैसे न चूकें

\n\n

कल्पना करें: आप एक टीम लीड या HR मैनेजर के सामने बैठे हैं, और अचानक सवाल आता है: "Swift में क्लास और स्ट्रक्चर में क्या अंतर है?"। यह तो बुनियादी बात है। लेकिन ऐसे ही "सरल" प्रश्नों पर कई उम्मीदवार घबरा जाते हैं। और अगर इसमें ARC, क्लोजर और ऑप्शनल टाइप्स की पेचीदगियाँ जोड़ दें, तो Swift साक्षात्कार एक वास्तविक चुनौती बन सकता है।

\n\n

इस लेख में, हम चर्चा करेंगे कि Swift साक्षात्कार की तैयारी कैसे करें ताकि आप आत्मविश्वास महसूस करें। आपको केवल सिद्धांत नहीं, बल्कि वास्तविक कोड उदाहरण, टिप्स और नियोक्ता से मिलने से पहले दोहराए जाने वाले विषयों की एक चेक-लिस्ट मिलेगी।

\n\n

Swift साक्षात्कार इतने विशिष्ट क्यों होते हैं?

\n\n

Swift एक युवा लेकिन बहुत शक्तिशाली भाषा है। यह निम्न-स्तरीय मेमोरी प्रबंधन (ARC) को उच्च-स्तरीय अमूर्तताओं (प्रोटोकॉल, जेनेरिक, फंक्शनल प्रोग्रामिंग) के साथ जोड़ती है। साक्षात्कार में आपकी जाँच कई स्तरों पर की जाएगी:

\n\n
    \n
  • बुनियादी सिंटैक्स — ऑप्शनल, एनुम, टपल, guard/if-let.
  • \n
  • मेमोरी प्रबंधन — ARC, retain cycles, कमज़ोर और unowned संदर्भ।
  • \n
  • OOP और प्रोटोकॉल-ओरिएंटेड प्रोग्रामिंग — क्लास बनाम स्ट्रक्चर, एक्सटेंशन, प्रोटोकॉल।
  • \n
  • फंक्शनल क्षमताएँ — क्लोजर, map/filter/reduce, async/await.
  • \n
  • iOS-विशिष्ट — UIKit, ViewController का जीवनचक्र, Auto Layout.
  • \n
\n\n

अच्छी खबर: यह सब सीखा और अभ्यास किया जा सकता है। चलिए शुरू करते हैं!

\n\n

शीर्ष-5 विषय जो आपको कंठस्थ होने चाहिए

\n\n

1. स्ट्रक्चर बनाम क्लास: दिग्गजों की लड़ाई

\n\n

यह शायद Swift साक्षात्कार में सबसे आम प्रश्न है। आइए एक उदाहरण से समझते हैं।

\n\n
// क्लास — संदर्भ प्रकार\nclass Car {\n    var model: String\n    init(model: String) { self.model = model }\n}\n\n// स्ट्रक्चर — मान प्रकार\nstruct Bike {\n    var model: String\n}\n\nvar myCar = Car(model: "Tesla")\nvar sameCar = myCar\nsameCar.model = "BMW"\nprint(myCar.model) // BMW — संदर्भ!\n\nvar myBike = Bike(model: "Stels")\nvar sameBike = myBike\nsameBike.model = "Author"\nprint(myBike.model) // Stels — प्रतिलिपि!
\n\n

साक्षात्कार में क्या जोर देना महत्वपूर्ण है:

\n
    \n
  • क्लास इनहेरिटेंस का समर्थन करते हैं, स्ट्रक्चर नहीं (लेकिन प्रोटोकॉल हैं)।
  • \n
  • स्ट्रक्चर value types हैं, क्लास reference types हैं।
  • \n
  • स्ट्रक्चर में स्वचालित रूप से memberwise initializer होता है।
  • \n
  • मल्टीथ्रेडिंग के लिए स्ट्रक्चर अधिक सुरक्षित हैं — कोई shared state नहीं।
  • \n
\n\n

2. ARC और मेमोरी प्रबंधन — iOS डेवलपर का मुख्य दर्द

\n\n

ARC (Automatic Reference Counting) की समझ के बिना Swift साक्षात्कार में कुछ नहीं हो सकता। सबसे आम समस्या retain cycle (चक्रीय संदर्भ) है।

\n\n
class ProfileViewController {\n    var onLogout: (() -> Void)?\n    \n    func setup() {\n        // ध्यान दें! क्लोजर के अंदर self पर मजबूत संदर्भ\n        onLogout = {\n            self.dismiss(animated: true)\n        }\n    }\n}
\n\n

इसे कैसे ठीक करें? [weak self] का उपयोग करें:

\n\n
onLogout = { [weak self] in\n    self?.dismiss(animated: true)\n}
\n\n

ARC पर सामान्य प्रश्न:

\n
    \n
  • weak और unowned में क्या अंतर है?
  • \n
  • retain cycle कब होता है?
  • \n
  • ARC क्लोजर के साथ कैसे काम करता है?
  • \n
\n\n

3. क्लोजर (Closures) — सरल से जटिल तक

\n\n

Swift में क्लोजर अनाम फंक्शन हैं जो संदर्भ को कैप्चर करते हैं। इनके बिना कोई भी callback या completion handler पूरा नहीं होता।

\n\n
// सरल क्लोजर\nlet greeting = { (name: String) in\n    print("Hello, \\(name)!")\n}\ngreeting("Swift") // Hello, Swift!\n\n// ऐरे को सॉर्ट करना\nlet numbers = [3, 1, 7, 2]\nlet sorted = numbers.sorted { $0 < $1 }\nprint(sorted) // [1, 2, 3, 7]
\n\n

पेचीदा प्रश्न: "क्या होता है जब

ब्लॉग

पुस्तक अनुशंसाएँ