इस सरल currying समारोह को देखते हुए:क्यों करीबी कार्यों को बाहरी पैरामीटर नामों की आवश्यकता होती है?
func foo(x:Int)(y:Int)->String{
return "\(x) with \(y)"
}
मैं इस तरह कुछ करने के लिए सक्षम होने के लिए उम्मीद थी:
let bar = foo(1)
bar(2) //<- error: Missing argument label 'y:' in call
अगर मैं bar
करने के लिए कॉल लेबल (bar(y:2)
के रूप में) सब कुछ ठीक काम करता है । लेकिन मुझे समझ में नहीं आता कि पैरामीटर नाम क्यों जरूरी है। क्या इससे बचने का कोई तरीका है?
स्पष्ट बात:
func foo(x:Int)(_ y:Int)->String ...
काम करने के लिए प्रतीत नहीं होता।
अच्छा! यह मुद्दा दोनों शीर्ष-स्तरीय func और क्लास विधि के लिए मौजूद है। – GoZoner
हाँ; स्विफ्ट पुस्तक में घुमाने का उदाहरण भी दिखाता है (इसे पेस्ट करें, दूसरा "मैन्युअल" करीकरण फ़ंक्शन हटाएं, और आप "गायब तर्क लेबल 'बी प्राप्त करें:' कॉल में") –
इसे rdar के रूप में लिखा: // 17359591। कृपया डुप्लीकेट करने के लिए स्वतंत्र महसूस करें। – jemmons