बंद:
वेरिएबल्स का उपयोग एक फ़ंक्शन को पकड़ता है बनाम एक फंक्शन का उपयोग करने से स्वयं सहायता मिल सकती है:
65 बाइट्स:
var r:(String,Int)->String={return String(repeating:$0,count:$1)}
66 बाइट्स:
func r(s:String,i:Int)->String{return String(repeating:s,count:i)}
यहां छोटा अंतर है, लेकिन यह कुछ पहेलियों में अधिक दिखाई देगा।
छोटा कार्य:
पिछले उदाहरण को देखकर मुझे कुछ याद आता है। कभी-कभी, यदि आप किसी फ़ंक्शन का पर्याप्त बार उपयोग कर रहे हैं, तो इसका नाम बदलने के लिए स्थान लायक है:
यह:
String(repeating:$0,count:$1)
इसके लिए:
var r:(String,Int)->String={return String(repeating:$0,count:$1)}
या, वास्तव में, यह बेहतर है:
var r=String.init(repeating:count:)
इस तरह से आप r("Hello World",8)
इसके बजाय बस फोन करते हैंString(repeating:"Hello World",count:8)
प्रकार घोषणाओं को छोड़कर:
मैंने एक बार तर्क प्रकार सेट किए बिना एक क्लोजर बनाया, इस प्रकार एक छोटा उत्तर तैयार किया गया:
var f={(i)->Int in i-1+i%2*2}
संकलक अनुमान लगाया कि i
में है Int
।
तेज रास्ता बनाएँ:
यदि आपको किसी सरणी की आवश्यकता है Ints
, तो Range
इसे बनाने के लिए एक का उपयोग करें :
Array(0...5)
यह वही काम करता है:
[0,1,2,3,4,5]
इसके बजाय If
या Switch
:
ऐसा करने के बजाय:
if n==0{return "a"}else if n==1{return "b"}else{return "c"}
आप शायद ऐसा कर सकते हैं:
return ["a","b","c"][n]
छोटा प्रकार:
यदि आप प्रकार रूपांतरण का उपयोग कर रहे हैं, तो आप एक प्रकार का उपनाम बनाना चाहते हैं:
typealias f=Float
नक्शा:
याद रखें कि आपको अक्सर फ़ंक्शन return
में कीवर्ड का उपयोग करने की आवश्यकता नहीं है map
।
ऑनलाइन स्विफ्ट चलाना:
हालांकि यह कोशिश करो ऑनलाइन स्विफ्ट का समर्थन नहीं करता है यह अब करता है !