Swift ऐरे में एलिमेंट का इंडेक्स कैसे खोजें? पूरा ट्यूटोरियल

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

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

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

परिचय: Swift में इंडेक्स खोजना क्यों ज़रूरी है?

\n\n

कल्पना करें: आप एक iOS ऐप बना रहे हैं। आपके पास टास्क की एक ऐरे है, और यूज़र किसी विशेष टास्क को उसके नाम से डिलीट करना चाहता है। या हो सकता है, आप किसी एलिमेंट की पोज़ीशन ढूंढ रहे हों ताकि उसे लिस्ट में अपडेट कर सकें। दोनों ही मामलों में, आपको एक ही चीज़ चाहिए — Swift ऐरे में एलिमेंट का इंडेक्स खोजना। यह इतना कॉमन सवाल है कि Stack Overflow पर हज़ारों बार देखा जा चुका है। और यह कोई संयोग नहीं: इंडेक्स खोजना रोज़ की डेवलपमेंट में सबसे ज़्यादा इस्तेमाल होने वाले कामों में से एक है।

\n\n

इस ट्यूटोरियल में, हम Swift में एलिमेंट का इंडेक्स खोजने के सभी तरीकों को समझेंगे: सरल firstIndex(of:) से लेकर क्लोज़र के साथ एडवांस सर्च तक। आप सीखेंगे कि स्ट्रिंग, नंबर और कस्टम ऑब्जेक्ट की ऐरे के साथ कैसे काम करें। चलिए शुरू करते हैं!

\n\n

1. तैयारी: Swift ऐरे में इंडेक्स क्या होता है?

\n\n

कोड में कूदने से पहले, बुनियादी बातें याद कर लें। Swift में ऐरे एक क्रमबद्ध कलेक्शन है। हर एलिमेंट का एक इंडेक्स होता है — एक पूर्णांक जो 0 से शुरू होता है। पहला एलिमेंट इंडेक्स 0, दूसरा 1, और इसी तरह।

\n\n
let fruits = ["🍎 सेब", "🍌 केला", "🍒 चेरी"]\n// इंडेक्स:         0           1           2\n
\n\n

जब हम कहते हैं "एलिमेंट का इंडेक्स खोजें", तो हमारा मतलब है: "मुझे वह पोज़ीशन नंबर बताओ जहाँ यह एलिमेंट मौजूद है।" Swift में इसके लिए कई शानदार तरीके हैं। आइए इन्हें एक-एक करके समझते हैं।

\n\n

2. क्लासिक तरीका: firstIndex(of:) — सबसे आसान रास्ता

\n\n

Swift 4.2 से, firstIndex(of:) मेथड इंडेक्स खोजने का मानक तरीका बन गया है। यह एक ऑप्शनल Int? वैल्यू लौटाता है — अगर एलिमेंट मिल जाता है, तो इंडेक्स मिलता है; नहीं तो nil।

\n\n

स्ट्रिंग ऐरे के साथ उदाहरण

\n\n
let fruits = ["सेब", "केला", "चेरी", "खजूर"]\n\nif let index = fruits.firstIndex(of: "चेरी") {\n    print("'चेरी' का इंडेक्स: \\(index)") // आउटपुट: 2\n} else {\n    print("एलिमेंट नहीं मिला")\n}\n
\n\n

ध्यान दें: firstIndex(of:) पहली बार मिलने वाले एलिमेंट का इंडेक्स लौटाता है। अगर ऐरे में डुप्लीकेट हैं, तो यह सिर्फ पहला इंडेक्स देगा।

\n\n

नंबर ऐरे के साथ उदाहरण

\n\n
let numbers = [10, 20, 30, 40, 50]\n\nif let position = numbers.firstIndex(of: 30) {\n    print("संख्या 30 पोज़ीशन \\(position) पर है") // 2\n}\n
\n\n

ज़रूरी: यह मेथड सिर्फ उन टाइप्स के साथ काम करता है जो Equatable प्रोटोकॉल को फॉलो करते हैं। सभी स्टैंडर्ड टाइप्स (Int, String, Double, Bool) पहले से ही इसका पालन करते हैं।

\n\n

3. कंडीशन के साथ सर्च: firstIndex(where:) — असीम लचीलापन

\n\n

लेकिन क्या होगा अगर आपको सटीक वैल्यू के बजाय किसी शर्त के आधार पर इंडेक्स खोजना हो? जैसे, पहला एलिमेंट जो 25 से बड़ा हो, या कोई स्ट्रिंग जो किसी खास अक्षर से शुरू होती हो। इसके लिए firstIndex(where:) मेथड है (पहले इसे index(where:) कहा जाता था)।

\n\n

क्लोज़र के साथ सिंटैक्स

\n\n
let scores = [15, 22, 37, 41, 19]\n\nif let index = scores.firstIndex(where: { $0 > 25 }) {\n    print("25 से बड़ा पहला एलिमेंट इंडेक्स \\(index) पर है") // 2 (वैल्यू 37)\n}\n
\n\n

ऑब्जेक्ट के प्रॉपर्टी के आधार पर सर्च

\n\n

मान लीजिए, आपके पास कस्टम स्ट्रक्चर की ऐरे है:

\n\n
struct User {\n    let name: String\n    let age: Int\n}\n\nlet users = [\n    User(name: "अन्ना", age: 25),\n    User(name: "बोरिस", age: 30),\n    User(name: "विक्टर", age: 22)\n]\n\n// "बोरिस" नाम वाले यूज़र का इंडेक्स खोजें\nif let index = users.firstIndex(where: { $0.name == "बोरिस" }) {\n    print("बोरिस इंडेक्स \\(index) पर है") // 1\n}\n
\n\n

यह तरीका बेहद शक्तिशाली है। आप कोई भी लॉजिकल कंडीशन इस्तेमाल कर सकते हैं: कई प्रॉपर्टीज़ चेक करना, रेगुलर एक्सप्रेशन, या क्लोज़र के अंदर फंक्शन कॉल करना।

\n\n

4. डुप्लीकेट के साथ काम: सभी इंडेक्स कैसे खोजें

\n\n

म

ब्लॉग

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