स्विफ्ट जावास्क्रिप्ट जैसी भाषाओं की तरह नहीं है, जहां आप मापदंडों को पारित किए बिना एक फ़ंक्शन को कॉल कर सकते हैं और इसे अभी भी कहा जाएगा। इसलिए स्विफ्ट में एक फ़ंक्शन को कॉल करने के लिए, आपको इसके मापदंडों के लिए एक मूल्य निर्दिष्ट करने की आवश्यकता है।
पैरामीटर के लिए डिफ़ॉल्ट मान आपको फ़ंक्शन को कॉल करते समय निर्दिष्ट किए बिना मान निर्दिष्ट करने की अनुमति देता है। यही कारण है कि test()
जब आप परीक्षण की घोषणा पर एक डिफ़ॉल्ट मान निर्दिष्ट करते हैं तो काम करता है।
यदि आप उस डिफ़ॉल्ट मान को शामिल नहीं करते हैं, तो आपको कॉल पर मूल्य प्रदान करने की आवश्यकता है test(nil)
:।
इसके अलावा, और सीधे इस सवाल से संबंधित नहीं है, लेकिन शायद ध्यान देने योग्य है, आप स्विफ्ट में संभावित शून्य वैकल्पिक से निपटने के लिए, संभवतः नल के संकेत से निपटने के "सी ++" तरीके का उपयोग कर रहे हैं। निम्नलिखित कोड अधिक सुरक्षित है (विशेष रूप से मल्टीथ्रेडिंग सॉफ़्टवेयर में), और यह आपको वैकल्पिक के जबरन टालने से बचने की अनुमति देता है:
func test(firstThing: Int? = nil) {
if let firstThing = firstThing {
print(firstThing)
}
print("done")
}
test()
func test(firstThing: Int = 4)
:Optional
एक डिफ़ॉल्ट मान के साथ एक गैर- पैरामीटर।Optional
प्रकार (जो क्या है?
करने के लिए एक प्रकार का नाम फैलता में) एक मूल्य के प्रकार है; "वैकल्पिक पैरामीटर" एक पैरामीटर के लिए एक दुर्भाग्यपूर्ण नाम है जो फ़ंक्शन कॉल में मौजूद हो सकता है या नहीं, भले ही इसके प्रकार की परवाह किए बिना।