स्विफ्ट एक प्रोग्रामिंग भाषा है जिसका उपयोग आईफोन, आईपैड, मैक, ऐप्पल वॉच और अन्य के लिए ऐप्स और गेम लिखने के लिए किया जाता है; ऐप्पल ने स्विफ्ट को स्पष्ट रूप से डिज़ाइन किया है ताकि उपकरणों से सबसे तेज़ और सबसे कुशल प्रदर्शन प्राप्त किया जा सके, और स्विफ्ट 5 अपने पहले से ही प्रभावशाली फीचर सेट पर विस्तार करता है। इस लेख में हम दिखाते हैं कि स्विफ्ट 5 का उपयोग कैसे करें, समझाएं कि आपको क्यों करना चाहिए, और भाषा के इस संस्करण में सभी नई सुविधाओं की रूपरेखा तैयार करें।
यदि आप बस इसमें उतरना चाहते हैं, तो आगे बढ़ें स्विफ्ट 5 के साथ शुरुआत कैसे करें। और व्यापक अवलोकन के लिए, मैक प्रोग्रामिंग के लिए हमारे पूर्ण गाइड पर एक नज़र डालें, जो उन कोडिंग भाषाओं की एक श्रृंखला को देखता है जिनका आप macOS में उपयोग कर सकते हैं।
स्विफ्ट 5 का अवलोकन
स्विफ्ट 5 ऐप्पल द्वारा विकसित एक प्रोग्रामिंग भाषा है जो डेवलपर्स को आईओएस, मैकओएस, टीवीओएस और वॉचओएस के लिए ऐप बनाने की अनुमति देती है।
मार्च 2019 में Xcode 10.2 के साथ पांचवां संस्करण जारी किया गया था - हम आपको बाद के खंड में स्विफ्ट 5 में नई सुविधाओं के माध्यम से बात करते हैं - लेकिन स्विफ्ट भाषा कुछ समय के लिए चल रही है:स्विफ्ट 1.0 को सितंबर 2014 में वापस जारी किया गया था। Apple के अनुसार , स्विफ्ट ऑब्जेक्टिव C से 2.6 गुना तेज और पायथन से 8.4 गुना तेज है।
स्विफ्ट 5 में आपको कोड क्यों करना चाहिए?
1) स्विफ्ट ओपन सोर्स . है . ओपन सोर्स का आमतौर पर मतलब होता है कि किसी प्रोग्राम या प्रोग्रामिंग लैंग्वेज के पीछे का सोर्स कोड आम जनता के लिए उपलब्ध कराया जाता है। कोडर्स तब कार्यक्रम का निरीक्षण, संशोधन और तैनाती जहां चाहें कर सकते हैं।
Apple का ओपन सोर्स पेज कहता है:"Apple का मानना है कि ओपन सोर्स मेथडोलॉजी का उपयोग करने से macOS अधिक मजबूत, सुरक्षित ऑपरेटिंग सिस्टम बन जाता है, क्योंकि इसके मुख्य घटकों को दशकों से पीयर रिव्यू के क्रूसिबल के अधीन किया गया है।"
2) स्विफ्ट सीखना आसान . है . Apple ने अपनी भाषा को उपयोग में आसान बनाने के लिए बनाया है। शुरुआती लोगों के लिए यह एक आदर्श भाषा है क्योंकि वाक्य रचना को समझना आसान है। यदि आपने पहले सॉफ़्टवेयर विकसित किया है, तो आप पाएंगे कि स्विफ्ट का सिंटैक्स और अवधारणाएं आपके द्वारा पहले से उपयोग किए जाने वाले समान हैं।
3) स्विफ्ट तेज़ है . ऐप्पल का दावा है कि स्विफ्ट में सर्च एल्गोरिदम ऑब्जेक्टिव-सी की तुलना में 2.6 गुना तेज और पायथन की तुलना में 8.4 गुना तेज है।
4) स्विफ्ट सुरक्षित है . जब आप भाषा के साथ काम करते हैं, तो आपको किसी भी असुरक्षित कोड का सामना नहीं करना चाहिए और अपने ऐप्स में आवश्यक सुरक्षा बनाए रखने में मदद के लिए आधुनिक प्रोग्रामिंग सम्मेलनों का उपयोग करेंगे।
5) खेल के मैदान . एक्सकोड खेल के मैदानों नामक एक सुविधा के साथ आता है जहां स्विफ्ट 5 प्रोग्रामर कोड लिख सकते हैं और तुरंत परिणाम देख सकते हैं। यहां स्विफ्ट खेल के मैदानों का उपयोग करने का तरीका बताया गया है।
6) स्विफ्ट 5 भविष्य-सबूत . है , और आपको कई अलग-अलग प्लेटफ़ॉर्म के लिए विकसित करने देता है:iOS, macOS, watchOS और tvOS।
7) स्विफ्ट में लगातार सुधार हो रहा है हर अपडेट के साथ। स्विफ्ट 5 लंबे समय से प्रतीक्षित एबीआई स्थिरता लाया, जिसका अर्थ है कि भविष्य के स्विफ्ट कंपाइलर स्विफ्ट 5 और इसके बाद के संस्करण में लिखे गए कोड को संकलित करने में सक्षम होंगे और स्विफ्ट के नए संस्करणों में कोड का माइग्रेशन डेवलपर्स के लिए कम दर्दनाक होगा। इसका मतलब यह भी है कि ओएस विक्रेता स्विफ्ट स्टैंडर्ड लाइब्रेरी को ऑपरेटिंग सिस्टम में एम्बेड करने में सक्षम होंगे और यह स्विफ्ट 5 और नए संस्करणों के साथ निर्मित सभी अनुप्रयोगों के साथ संगत होगा।
हमें WWDC 2019 में और अधिक स्विफ्ट घटनाक्रम सुनने की संभावना है।
स्विफ्ट 5 के साथ शुरुआत कैसे करें
IOS के लिए ऐप विकसित करने के लिए, आपको एक मैक (मैकबुक, आईमैक या मैक मिनी) और एक्सकोड (संस्करण 10.2 या उच्चतर) नामक मुफ्त सॉफ्टवेयर की आवश्यकता होगी। आरंभ करने के लिए नीचे दिए गए चरणों का पालन करें:
- अपने डेस्कटॉप पर मैक ऐप स्टोर खोलें।
- खोज बार में 'Xcode' खोजें।
- Xcode आइकन के आगे 'प्राप्त करें' पर क्लिक करें।
- आप अपने ब्राउज़र में मैक ऐप स्टोर पर भी एक्सकोड पा सकते हैं।
ऑनलाइन कंपाइलर
यदि आप अपने ऐप्स को परिनियोजित करने की योजना नहीं बना रहे हैं, तो आप हमेशा एक स्विफ्ट ऑनलाइन अनुपालनकर्ता का उपयोग कर सकते हैं। स्विफ्ट कोड सीखने और निष्पादित करने का यह एक शानदार तरीका है।
- ऑनलाइन स्विफ्ट खेल का मैदान स्विफ्ट 5 का समर्थन करता है और यह आपको कोड का परीक्षण करने और निष्पादित करने की अनुमति देता है।
- Repl.it में एक ऑनलाइन कंपाइलर है जो लेखन के समय (मई 2019) स्विफ्ट 4.2 का समर्थन करता है, लेकिन एक अपडेट जल्द ही होने वाला है।
स्विफ्ट में एक साधारण ऐप कैसे लिखें
Xcode खोलें, और फ़ाइल> नया> प्रोजेक्ट . चुनें . एकल दृश्य ऐप Select चुनें टेम्पलेट सूची से।
अपने ऐप के लिए एक नाम और संगठन का नाम दर्ज करें (यह आपकी कंपनी का नाम या आपका अपना नाम हो सकता है)। संगठन पहचानकर्ता आमतौर पर आपकी कंपनी का URL उल्टे क्रम में होता है - उदाहरण के लिए com.mycompany.myapp ।
भाषा के रूप में स्विफ्ट चुनें और अगला . क्लिक करें . अंत में, अपने Mac पर उस स्थान का चयन करें जहाँ आप चाहते हैं कि Xcode प्रोजेक्ट बनाए।
परियोजना के निर्माण पर आपको निम्न स्क्रीन के साथ प्रस्तुत किया जाएगा:
यहां, आप एक साधारण ऐप विकसित कर रहे होंगे, जहां उपयोगकर्ता टेक्स्ट फ़ील्ड के अंदर अपना नाम दर्ज कर सकता है और जब वे एक बटन दबाते हैं तो एक साधारण अभिवादन प्राप्त कर सकते हैं।
शुरू करने के लिए, Main.storyboard . पर जाएं बाएँ फलक में फ़ाइल। आपको एक खाली दृश्य दिखाई देगा। ऑब्जेक्ट लाइब्रेरी खोलने के लिए ऊपरी दाएं कोने में गोल बटन पर क्लिक करें। टेक्स्ट फ़ील्ड, लेबल और बटन को व्यू पर ड्रैग करें।
व्यू पदानुक्रम में बटन का चयन करें और इसका शीर्षक दाईं ओर उपयोगिता क्षेत्र में "ग्रीटिंग उत्पन्न करें" पर सेट करें।
ViewController.swift पर डबल-क्लिक करें फ़ाइल। यह एक अलग विंडो में खुलेगा।
अब दृश्य में टेक्स्ट फ़ील्ड चुनें और Ctrl . को दबाए रखें और ViewController . के शीर्ष पर खींचें कक्षा। आपको टेक्स्ट फ़ील्ड के लिए IBOutlet बनाने के लिए प्रेरित किया जाएगा। इसे "टेक्स्टफ़ील्ड" कहें।
लेबल के लिए भी ऐसा ही करें और IBOutlet को "लेबल" नाम दें। आपको बटन के लिए भी ऐसा ही करना होगा, लेकिन इसे ViewController के शीर्ष पर खींचने के बजाय , IBAction विधि बनाने के लिए इसे नीचे की ओर खींचें। विधि को "बटनटैप" नाम दें।
IBOutlets का उपयोग हमारे कोड में स्टोरीबोर्ड में नियंत्रणों तक पहुँचने के लिए किया जाता है और IBAction विधियों का उपयोग टैप जैसी बटन घटनाओं पर प्रतिक्रिया करने के लिए किया जाता है।
बटनटैप किए गए . में निम्न कोड जोड़ें आपके ViewController . की विधि कक्षा:
अगर नाम दें =textField.text {
self.label.text ="नमस्ते" + नाम
}
इन परिवर्तनों के बाद ViewController.swift फ़ाइल इस तरह दिखनी चाहिए:
अब आप ऐप चलाने के लिए तैयार हैं। रन बटन दबाएं, और ऐप सिम्युलेटर पर लॉन्च हो जाएगा।
जब उपयोगकर्ता टेक्स्ट फ़ील्ड में अपना नाम जोड़ता है और बटन को टैप करता है, तो नीचे का लेबल दर्ज किए गए नाम के साथ "हैलो" प्रदर्शित करेगा।
स्विफ्ट 5 अवधारणाएं (बुनियादी और उन्नत)
हमने एक साधारण ऐप बनाया है। अब कुछ तरीकों और कोड स्निपेट पर चलते हैं जिनका उपयोग आप अपने स्वयं के ऐप प्रोजेक्ट में कर सकते हैं।
स्विफ्ट में टेक्स्ट प्रिंट करना
प्रिंट ("नमस्ते, दुनिया!")
चर परिभाषित करना
स्थिरांक बनाने के लिए 'let' का प्रयोग करें और एक वेरिएबल को परिभाषित करने के लिए 'var' का प्रयोग करें। एक बार नियत किए जाने के बाद एक स्थिरांक का मान बदला नहीं जा सकता; एक चर का मान बदल सकता है। उपयोगकर्ताओं को हमेशा स्पष्ट रूप से प्रकार लिखने की आवश्यकता नहीं होती है। जब आप एक स्थिरांक या चर बनाते हैं तो एक मान प्रदान करना संकलक को उसके प्रकार का अनुमान लगाने देता है।
मान लीजिए constVar =42
वर संख्यावर =27
डेवलपर प्रकार भी निर्दिष्ट कर सकता है। नीचे दिए गए उदाहरण में, हम एक पूर्णांक घोषित कर रहे हैं।
var numberVar:Int =27
स्विफ्ट में टिप्पणियाँ
स्विफ्ट में टिप्पणियाँ दो प्रकार की हो सकती हैं।
सिंगल लाइन:
//यह एक टिप्पणी है
एकाधिक-पंक्ति टिप्पणियाँ:
/* यह एक . है
मल्टीलाइन कमेंट */
स्विफ्ट में निर्णय लेना
if कथन . का सिंटैक्स स्विफ्ट में इस प्रकार है:
अगर बूलियन_एक्सप्रेशन {
/* कथन निष्पादित होगा यदि बूलियन अभिव्यक्ति सत्य है */
}
उदाहरण के लिए:
if...else स्टेटमेंट . का सिंटैक्स स्विफ्ट 5 में इस प्रकार है:
अगर बूलियन_एक्सप्रेशन {
/* कथन निष्पादित होगा यदि बूलियन अभिव्यक्ति सत्य है */
} और {
/* स्टेटमेंट निष्पादित होगा यदि बूलियन एक्सप्रेशन गलत है */
}
उदाहरण के लिए:
if...else if...else स्टेटमेंट . का सिंटैक्स स्विफ्ट 5 में इस प्रकार है:
अगर बूलियन_एक्सप्रेशन_1 {
/* बूलियन व्यंजक 1 के सत्य होने पर निष्पादित होता है */
} और अगर boolean_expression_2 {
/* बूलियन एक्सप्रेशन 2 के सत्य होने पर निष्पादित होता है */
} और अगर boolean_expression_3 {
/* बूलियन व्यंजक 3 के सत्य होने पर निष्पादित होता है */
} और {
/* तब निष्पादित होता है जब उपरोक्त में से कोई भी शर्त सत्य नहीं होती है */
}
उदाहरण के लिए:
स्विच स्टेटमेंट
स्विफ्ट 5 में उपलब्ध स्विच स्टेटमेंट का एक सामान्य सिंटैक्स निम्नलिखित है। यहां यदि फॉलथ्रू का उपयोग किया जाता है तो यह अगले मामले के निष्पादन के साथ जारी रहेगा और फिर स्विच स्टेटमेंट से बाहर आ जाएगा।
अभिव्यक्ति स्विच करें {
केस एक्सप्रेशन1 :
कथन(s)
फॉलथ्रू /* वैकल्पिक */
केस एक्सप्रेशन2, एक्सप्रेशन3 :
कथन(s)
फॉलथ्रू /* वैकल्पिक */
डिफ़ॉल्ट :/* वैकल्पिक */
कथन;
}
उदाहरण के लिए:
सरणी
वर्गाकार कोष्ठकों का उपयोग करके सरणियाँ और शब्दकोश बनाएँ - अर्थात [ और ] - और कोष्ठक में अनुक्रमणिका या कुंजी लिखकर उनके तत्वों तक पहुँचें। निम्न पंक्ति एक सरणी बनाती है।
var arrayList =["स्विफ्ट", "जावास्क्रिप्ट", "जावा", "PHP"]
सरणी के दूसरे तत्व तक पहुँचने और संशोधित करने के लिए हम सीधे लिख सकते हैं:
सरणीसूची[2] ="मूल निवासी प्रतिक्रिया करें"
एक खाली ऐरे बनाने के लिए, इनिशियलाइज़र सिंटैक्स का उपयोग करें।
var खालीअरे =[स्ट्रिंग] ()
खालीअरे =[]
शब्दकोश
var व्यवसाय =["स्टीव":"डेवलपर", "केट":"डिज़ाइनर",]
शब्दकोश के लिए किसी भी मूल्य को एक्सेस और संशोधित करने के लिए हम सीधे लिख सकते हैं:
व्यवसाय["स्टीव"] ="सीटीओ"
एक खाली डिक्शनरी बनाने के लिए, इनिशियलाइज़र सिंटैक्स का उपयोग करें।
व्यवसाय =[:]
सेट
स्विफ्ट में सेट सरणियों के समान होते हैं लेकिन उनमें केवल अद्वितीय मान होते हैं।
वर ए :सेट =[1,2,3,4,5,6,7,8,9,0]
स्विफ्ट वैकल्पिक प्रकार का भी परिचय देता है, जो एक मूल्य की अनुपस्थिति को संभालता है। वैकल्पिक कहते हैं कि या तो "एक मान है, और यह x के बराबर है" या "बिल्कुल कोई मान नहीं है"। आप '?' के साथ एक वैकल्पिक परिभाषित कर सकते हैं या '!'
var myString:String?
'?' इसका मतलब है कि मान मौजूद या अनुपस्थित हो सकता है।
'!' इसका मतलब है कि मान प्रारंभ में शून्य हो सकता है, लेकिन भविष्य में जब इसका उपयोग किया जाता है तो इसका मान होना चाहिए, या यह एक रनटाइम त्रुटि उत्पन्न करेगा।
कोई संकेत नहीं का अर्थ है कि चर वैकल्पिक नहीं है और इसे एक मान निर्दिष्ट करना होगा, या यह एक संकलक त्रुटि उत्पन्न करेगा।
कार्य
स्विफ्ट में फ़ंक्शन बनाने के लिए सिंटैक्स निम्नलिखित है:इनपुटनम पैरामीटर नाम है जिसके बाद डेटाटाइप है, 'क्रिएटस्ट्र' फ़ंक्शन का नाम है। '-> स्ट्रिंग' रिटर्न प्रकार को दर्शाता है। फ़ंक्शन इंटीजर को इनपुट के रूप में लेता है और इसे स्ट्रिंग में परिवर्तित करता है और इसे वापस करता है।
func createStr(नंबर इनपुटनम:इंट) -> स्ट्रिंग
{
वापसी "\(inputNum)"
}
फ़ंक्शन को नीचे दिए गए सिंटैक्स का उपयोग करके कॉल किया जा सकता है:
createStr(संख्या:345)
कक्षाएं
क्लास कार बनाने के लिए सिंटैक्स निम्नलिखित है। इसमें एक वैकल्पिक सदस्य चर numOfPersons और एक फ़ंक्शन displayDetails()
. है
क्लास कार
{
var numOfPersons :Int?
func displayDetails() {
}
}
निम्न पंक्ति का उपयोग करके क्लास इंस्टेंस बनाया जा सकता है:
var myCar :Car =Car()
'numOfPersons' वेरिएबल को नीचे के रूप में प्रारंभ किया जा सकता है:
myCar.numOfPersons =5
स्विफ्ट में क्लोजर
क्लोजर गुमनाम कार्य हैं जिन्हें ब्लॉक के रूप में व्यवस्थित किया जाता है और सी और ऑब्जेक्टिव-सी भाषाओं की तरह कहीं भी कहा जाता है। क्लोजर को वैरिएबल को सौंपा जा सकता है। स्विफ्ट में क्लोजर का सिंटैक्स निम्नलिखित है।
{
(पैरामीटर) −> वापसी प्रकार
कथन
}
नीचे एक सरल उदाहरण है। यहां हम वेरिएबल scname . को क्लोजर असाइन कर रहे हैं . फिर अगली लाइन पर हम वेरिएबल नाम से क्लोजर को कॉल कर रहे हैं।
एक्सटेंशन
स्विफ्ट में हम एक्सटेंशन की मदद से मौजूदा वर्ग, संरचना या गणना प्रकार की कार्यक्षमता बढ़ा सकते हैं। एक्सटेंशन के साथ टाइप फंक्शनलिटी को जोड़ा जा सकता है लेकिन इस तरह से फंक्शनलिटी को ओवरराइड करना संभव नहीं है।
नीचे दिए गए उदाहरण में हमारे पास एक क्लास कार है और हम कार में एक और प्रॉपर्टी जोड़ने के लिए एक एक्सटेंशन जोड़ रहे हैं। स्पीड प्रॉपर्टी को एक्सेस करते समय, इसे सीधे एक्सेस किया जा सकता है जैसे कि यह क्लास से संबंधित हो।
टुपल्स
टपल प्रकार का उपयोग एकल यौगिक मान में एकाधिक मानों को समूहित करने के लिए किया जाता है। Tuple घोषणा का सिंटैक्स यहां दिया गया है:
var TupleName =(Value1, value2,… मानों की कोई भी संख्या)
यहाँ एक Tuple घोषणा है:
var error501 =(501, "लागू नहीं")
स्विफ्ट 5 में नई सुविधाएं
आइए स्विफ्ट 5 में नए तत्वों को अधिक विस्तार से देखें।
कच्चे तार
स्विफ्ट 5 हमें कच्चे तार लाता है, एक ऐसी सुविधा जो पिछले स्विफ्ट संस्करणों की तरह एस्केप अनुक्रमों का उपयोग किए बिना उद्धरण चिह्नों और बैकस्लैश वाले स्ट्रिंग बनाना आसान बनाती है। कच्चे स्ट्रिंग्स में, उद्धरण चिह्नों और बैकस्लैश की व्याख्या शाब्दिक रूप से उन प्रतीकों के रूप में की जाती है, जिन्हें स्ट्रिंग टर्मिनेशन या एस्केप कैरेक्टर के रूप में व्याख्यायित नहीं किया जाता है।
कच्चे तार का उपयोग करने के लिए, आपको केवल # . जोड़ना होगा स्ट्रिंग की शुरुआत और अंत में:
चूंकि कच्चे स्ट्रिंग्स में बैकस्लैश की व्याख्या एक शाब्दिक प्रतीक के रूप में की जाती है, कच्चे स्ट्रिंग्स में स्ट्रिंग इंटरपोलेशन का उपयोग करने के लिए आपको एक और # जोड़ना होगा। बैकस्लैश प्रतीक के बाद:
यदि आपको "# . का उपयोग करने की आवश्यकता है एक कच्चे स्ट्रिंग के अंदर एक साथ अनुक्रम आपको जोड़ने की जरूरत है ## स्ट्रिंग की शुरुआत और अंत में:
पूर्णांक गुणकों का पता लगाना
स्विफ्ट 4.2 और पुराने संस्करणों में, यह पता लगाने के लिए कि क्या कोई संख्या किसी अन्य संख्या का गुणज है, आपको मोडुलो ऑपरेटर (%) का उपयोग करना होगा। अब स्विफ्ट 5 में, उसके लिए एक समर्पित विधि है, जो कोड को अधिक स्पष्ट बनाती है:
भविष्य के एनम मामलों को संभालना
स्विफ्ट में स्विच स्टेटमेंट हमेशा संपूर्ण होना चाहिए। इसका मतलब है कि आपको हमेशा सभी एनम मामलों को संभालना होगा या केवल विशिष्ट मामलों को डिफ़ॉल्ट के अतिरिक्त के साथ संभालना होगा मामला जो अन्य सभी मामलों को संभालता है:
इस दृष्टिकोण के साथ समस्या यह है कि यदि भविष्य में डेवलपर एनम में एक और मामला जोड़ने का फैसला करता है, तो संकलक द्वारा कोई चेतावनी नहीं दी जाएगी कि नया मामला जोड़ा गया था। इसका मतलब है कि नया मामला डिफ़ॉल्ट . द्वारा नियंत्रित किया जाएगा मामला जो हमेशा कुछ ऐसा नहीं होता जो आप चाहते हैं।
इस समस्या के समाधान के लिए, एक नया @अज्ञात विशेषता को स्विफ्ट 5 में जोड़ा गया था। आप इस विशेषता का उपयोग डिफ़ॉल्ट केस के साथ करते हैं।
@अज्ञात . के साथ स्विच स्टेटमेंट में डिफॉल्ट केस, कंपाइलर एक चेतावनी जारी करेगा यदि भविष्य में एनम में एक नया केस जोड़ा गया था। इस तरह, डेवलपर तय कर सकता है कि नए मामले को संभालना है या नहीं।
नेस्टेड वैकल्पिक को समतल करना
कोशिश करें? . का उपयोग करके फेंकने वाले कोड को हैंडल करके नेस्टेड विकल्प बनाए जा सकते हैं . स्विफ्ट 5 में, नेस्टेड वैकल्पिक को नियमित वैकल्पिक में समतल किया जाता है। यह सशर्त टाइप-कास्टिंग और वैकल्पिक चेनिंग के व्यवहार से मेल खाता है।
ऊपर के उदाहरण में, आप देख सकते हैं कि मॉडल वेरिएबल स्ट्रिंग? . प्रकार का है और नहीं स्ट्रिंग?? जैसे यह स्विफ्ट 4.2 में था।
मानक पुस्तकालय में परिणाम प्रकार
स्विफ्ट 5 में, परिणाम प्रकार को मानक पुस्तकालय में जोड़ा गया था। परिणाम type आपको एसिंक्रोनस कोड में त्रुटियों को संभालने का एक साफ और आसान तरीका देता है। इसे सफलता . के साथ एक एनम के रूप में लागू किया गया है और विफलता मामले दोनों मामलों को जेनरिक का उपयोग करके लागू किया जाता है। सफलता विफलता . के दौरान मामले में किसी भी प्रकार का संबद्ध मान हो सकता है मामले में एक संबद्ध मान होना चाहिए जो त्रुटि . के अनुरूप हो मसविदा बनाना। यहां एक उदाहरण दिया गया है जो परिणाम . के उपयोग को दर्शाता है टाइप करें:
ऊपर के उदाहरण में, हमने एक सरल ApiClient . लागू किया है जो एक यूआरएल से नाम प्राप्त करता है। ध्यान दें कि fetchNames . में दूसरा पैरामीटर फ़ंक्शन एक पूर्ण समापन है जो एक परिणाम . स्वीकार करता है प्रकार। परिणाम हमारे उदाहरण में टाइप करें [स्ट्रिंग] . का उपयोग करता है सफलता के मामले और ApiError . के लिए विफलता के मामले के लिए।
अब, हम ऊपर दिए गए कोड को इस तरह इस्तेमाल कर सकते हैं:
स्विफ्ट की अन्य विशेषताएं
हमने पिछले संस्करण में स्विफ्ट के नवीनतम संस्करण में नई सुविधाओं को देखा। लेकिन यह अभी भी उन विशेषताओं के बारे में जानने लायक है जो पुराने संस्करणों से बची हैं। यहां कुछ हाइलाइट्स हैं जिन्हें स्विफ्ट 4 में जोड़ा गया था:
स्ट्रिंग्स
स्विफ्ट 4 के अनुसार, स्ट्रिंग संग्रह प्रोटोकॉल के अनुरूप है, और आप सीधे स्ट्रिंग पर पुनरावृति कर सकते हैं। इसका मतलब यह भी है कि आप स्ट्रिंग पर किसी भी संग्रह विधियों और गुणों का उपयोग कर सकते हैं, जैसे गिनती, खाली, नक्शा (), फ़िल्टर (), अनुक्रमणिका (की:) इत्यादि।
इसके बजाय ट्रिपल कोट्स का उपयोग करके स्विफ्ट एकाधिक लाइन स्ट्रिंग्स के लिए एक पूरी तरह से अलग दृष्टिकोण लेता है, इसलिए आपको अब दोहरे उद्धरण चिह्नों से बचने की आवश्यकता नहीं है:
JSON एन्कोडिंग और डिकोडिंग
स्विफ्ट 4 ने पूरे JSON संग्रह और क्रमांकन प्रक्रिया को सरल बना दिया जिसका उपयोग आप स्विफ्ट 3 में करते थे। अब आपको केवल अपने कस्टम प्रकारों को कोडेबल प्रोटोकॉल को लागू करना होगा - जो एनकोडेबल और डिकोडेबल दोनों को जोड़ती है।
स्मार्ट कुंजी पथ
स्विफ्ट 4 ने मुख्य पथों के साथ किसी वस्तु के गुणों तक पहुंचना आसान बना दिया है।
कक्षाओं को प्रोटोकॉल के साथ मिलाना
स्थिरांक और चर बनाते समय आप स्विफ्ट 3 में प्रोटोकॉल को एक साथ जोड़ सकते हैं। स्विफ्ट 4 एक कदम आगे चला गया और आपको उसी सिंटैक्स का उपयोग करके मिश्रण में कक्षाएं जोड़ने देता है। आप एक निश्चित वस्तु को एक वर्ग और एक प्रोटोकॉल के लिए केवल एक ही तरह से उसी तरह से बाधित कर सकते हैं जैसे कि उद्देश्य-सी में।
स्वैप बनाम स्वैपएट
स्वैप(_:_:) स्विफ्ट 3 में उत्परिवर्तन विधि एक निश्चित सरणी के दो तत्वों को लेती है और उन्हें मौके पर ही बदल देती है। इस समाधान में एक बड़ी खामी है:स्वैप किए गए तत्वों को फ़ंक्शन में इनपुट पैरामीटर के रूप में पास किया जाता है ताकि यह उन्हें सीधे एक्सेस कर सके।
स्विफ्ट 4 इस विधि को swapAt(_:_:) से बदलकर पूरी तरह से अलग तरीका अपनाता है जो दो तत्वों के संबंधित सूचकांकों को लेता है और उन्हें पहले की तरह ही स्वैप करता है।
शब्दकोश और सेट
आप शब्दकोश के init(uniqueKeysWithValues:) . का उपयोग कर सकते हैं टुपल्स एरे से एकदम नया शब्दकोश बनाने के लिए इनिशियलाइज़र।
स्विफ्ट 5 प्रोग्रामिंग के बारे में अधिक जानने के लिए सर्वोत्तम स्थान
स्विफ्ट 5 का उपयोग करके ऐप बनाना शुरू करने में आपकी मदद करने के लिए कई संसाधन हैं। कुछ बेहतरीन विकल्प नीचे सूचीबद्ध हैं:
Apple दस्तावेज़ीकरण: स्विफ्ट 5 सीखने के लिए सबसे अच्छी जगह स्विफ्ट के लिए एप्पल का आधिकारिक दस्तावेज है।
ईबुक: ऐप्पल ने एक अप-टू-डेट ईबुक जारी की है जो स्विफ्ट 5:द स्विफ्ट प्रोग्रामिंग लैंग्वेज (स्विफ्ट 5.0) सीखते समय बेहद उपयोगी है।
उडेमी :सबसे बड़ी ऑनलाइन वीडियो सीखने की सेवा में कई पाठ्यक्रम हैं जो स्विफ्ट के विभिन्न संस्करणों को कवर करते हैं। यहां कुछ ऐसे हैं जो स्विफ्ट 5 को कवर करते हैं:
- शुरुआती के लिए स्विफ्ट 5 प्रोग्रामिंग
- iOS 12 और स्विफ्ट 5:एक टू डू लिस्ट ऐप बनाएं
स्विफ्ट प्रोग्रामिंग आसान चरणों में - iOS 12 और स्विफ्ट 5 को कवर करती है: इस लेख के लेखक की यह पुस्तक आपको सिखाएगी कि स्विफ्ट 5 का उपयोग करके आईओएस ऐप कैसे बनाया जाए और यह पूरी तरह से सचित्र भी है। आप अमेज़न से एक प्रति प्राप्त कर सकते हैं।
स्विफ्ट के साथ हैकिंग: स्विफ्ट के साथ विकास के बारे में जानने का एक शानदार तरीका हैकिंग विद स्विफ्ट वेबसाइट पर पुस्तकों का उपयोग करना है। इसका रखरखाव पॉल हडसन, एक महान स्विफ्ट डेवलपर और उत्साही द्वारा किया जाता है।
हमारे पास एक अलग लेख में और संसाधन हैं:स्विफ्ट कैसे सीखें।