स्विफ्ट मानक पुस्तकालय (iOS/macOS): पूर्ण अवलोकन
\n\nस्विफ्ट मानक पुस्तकालय प्रकारों, प्रोटोकॉल और फ़ंक्शनों का एक मूलभूत सेट है जिस पर iOS, macOS, watchOS और tvOS के लिए सभी विकास आधारित है। कई भाषाओं के विपरीत जहाँ मानक पुस्तकालय न्यूनतम होता है, स्विफ्ट "बॉक्स से बाहर" ही एक समृद्ध टूलकिट प्रदान करता है। इस लेख में, हम पुस्तकालय के प्रमुख घटकों का विस्तार से विश्लेषण करेंगे जो दैनिक विकास में उपयोग किए जाते हैं।
\n\nमूल डेटा प्रकार और प्रोटोकॉल
\n\nपुस्तकालय की नींव आदिम प्रकार और प्रोटोकॉल हैं जो डेटा के साथ काम करने में एकरूपता सुनिश्चित करते हैं।
\n\n- \n
- समानता और तुलना प्रोटोकॉल:
Equatable,Comparable,Hashable— वस्तुओं की तुलना और हैशिंग की अनुमति देते हैं। \n - प्रस्तुति प्रोटोकॉल:
CustomStringConvertible,CustomDebugStringConvertible— वस्तुओं के स्ट्रिंग विवरण के लिए। \n - मूल प्रकार:
Int,Double,Bool,String,Character— अधिकतम प्रदर्शन के लिए पुनर्परिभाषित। \n
// प्रोटोकॉल के उपयोग का उदाहरण\nstruct Person: Equatable, CustomStringConvertible {\n let name: String\n let age: Int\n \n var description: String {\n return "\\(name), \\(age) वर्ष"\n }\n}\n\nlet alice = Person(name: "एलिस", age: 30)\nlet bob = Person(name: "बॉब", age: 25)\nprint(alice == bob) // false\nprint(alice) // "एलिस, 30 वर्ष"\n\nसंग्रह: सरणियाँ, शब्दकोश और सेट
\n\nस्विफ्ट तीन मुख्य प्रकार के संग्रह प्रदान करता है, जो विभिन्न उपयोग परिदृश्यों के लिए अनुकूलित हैं।
\n\nसरणियाँ (Array)
\nयादृच्छिक पहुँच के साथ क्रमबद्ध संग्रह। गतिशील विस्तार और संकुचन का समर्थन करते हैं।
\n\nvar numbers: [Int] = [1, 2, 3, 4, 5]\nnumbers.append(6)\nnumbers.remove(at: 0)\nlet filtered = numbers.filter { $0 > 3 }\nprint(filtered) // [4, 5, 6]\n\nशब्दकोश (Dictionary)
\nअक्रमबद्ध "कुंजी-मान" संग्रह। कुंजियाँ Hashable होनी चाहिए।
\n\nvar capitals: [String: String] = [\n "रूस": "मास्को",\n "फ्रांस": "पेरिस",\n "जापान": "टोक्यो"\n]\ncapitals["जर्मनी"] = "बर्लिन"\nif let russiaCapital = capitals["रूस"] {\n print("रूस की राजधानी - \\(russiaCapital)")\n}\n\nसेट (Set)
\nअद्वितीय तत्वों के अक्रमबद्ध संग्रह। सदस्यता जाँच और गणितीय संक्रियाओं के लिए आदर्श।
\n\nlet setA: Set = [1, 2, 3, 4]\nlet setB: Set = [3, 4, 5, 6]\nlet intersection = setA.intersection(setB)\nlet union = setA.union(setB)\nprint(intersection) // [3, 4]\nprint(union) // [1, 2, 3, 4, 5, 6]\n\nस्ट्रिंग के साथ कार्य
\n\nस्विफ्ट में स्ट्रिंग्स यूनिकोड वर्णों के संग्रह हैं, जो अंतर्राष्ट्रीयकरण के साथ काम को अत्यंत सरल बनाती हैं।
\n\n- \n
- स्ट्रिंग इंडेक्स:
startIndex,endIndex,index(_:offsetBy:)— वर्णों के माध्यम से सुरक्षित नेविगेशन। \n - इंटरपोलेशन:
"\\(चर)"— स्ट्रिंग में मान सम्मिलित करना। \n - बहु-पंक्ति शाब्दिक:
""" """— सुविधाजनक स्वरूपण। \n
let greeting = "नमस्ते, दुनिया!"\nlet firstChar = greeting[greeting.startIndex] // "न"\nlet index = greeting.index(greeting.startIndex, offsetBy: 7)\nlet substring = greeting[index...] // "दुनिया!"\n\n// इंटरपोलेशन और बहु-पंक्ति\nlet name = "स्विफ्ट"\nlet description = """\nभाषा \\(name) का उपयोग विकास के लिए किया जाता है\niOS और macOS के लिए।\n"""\nprint(description)\n\nवैकल्पिक प्रकार और nil के साथ कार्य
\n\nस्विफ्ट वैकल्पिक प्रकारों के माध्यम से अनुपस्थित मानों के साथ सुरक्षित कार्य प्रदान करता है। यह भाषा की प्रमुख विशेषताओं में से एक है।
\n\nvar optionalName: String? = "एलेक्सी"\n// Optional