सारांश:
उपरोक्त उत्तर बीटा 3 तक सही थे (और भविष्य के रिलीज में फिर से बदल सकते हैं)
स्लाइस अब केवल एक सरणी की तरह काम करता है, लेकिन जैसा @ मट्ट ने ऊपर कहा, प्रभावी रूप से हुड के नीचे एक सरणी के लिए एक उथले प्रतिलिपि है, जब तक कि एक बदलाव नहीं किया जाता है। स्लाइस (अब) मूल मूल्यों का एक स्नैपशॉट देखें,
यह भी ध्यान दें कि स्लाइस सिंटैक्स बदल गया है:
[from..upToButNotIncluding] -> [from..<upToButNotIncluding]
उदाहरण:
var arr = ["hello", "world", "goodbye"]
var arrCopy = arr
let slice = arr[0..<2]
arr[0] = "bonjour"
arr
arrCopy
slice
यह बहुत अधिक समान प्रसंस्करण की अनुमति देता है, क्योंकि यह अजगर की सूची सूची प्रसंस्करण के लिए सरल (IMHO) है - दूसरे को बनाने के लिए एक सूची को छानना। बीटा 3 से पहले मैट के जवाब के अनुसार, आपको एक स्लाइस को मैप करने के लिए एक अस्थायी सरणी बनानी होगी। नया कोड अब सरल है:
class NameNumber {
var name:String = ""
var number:Int = 0
init (name:String, number:Int) {
self.name = name
self.number = number
}
}
var number = 1
let names = ["Alan", "Bob", "Cory", "David"]
let foo = names[0..<2].map { n in NameNumber(name:n, number:number++) }
foo
(हालांकि निष्पक्ष होने के लिए, फू अभी भी एक टुकड़ा है)
संदर्भ:
http://adcdownload.apple.com//Developer_Tools/xcode_6_beta_3_lpw27r/xcode_6_beta_3_release_notes__.pdf
महत्वपूर्ण परिवर्तन, जारी किए गए मुद्दे, - स्विफ्ट भाषा, अनुच्छेद 1
"स्विफ्ट में ऐरे को डिक्शनरी और स्ट्रिंग ... एम" जैसे पूर्ण मूल्य शब्दार्थ के लिए पूरी तरह से नया रूप दिया गया है।