Özet:
Yukarıdaki cevaplar Beta 3'e kadar doğruydu (ve gelecek sürümlerde tekrar değişebilir)
Dilim artık tıpkı bir dizi gibi davranıyor, ancak @matt'ın yukarıda da söylediği gibi, bir değişiklik yapılana kadar kaputun altındaki bir dizinin sığ bir kopyası. Dilimler (şimdi) orijinal değerlerin anlık görüntüsünü görür,
Ayrıca dilim sözdiziminin değiştiğine dikkat edin:
[from..upToButNotIncluding] -> [from..<upToButNotIncluding]
Misal:
var arr = ["hello", "world", "goodbye"]
var arrCopy = arr
let slice = arr[0..<2]
arr[0] = "bonjour"
arr
arrCopy
slice
Bu, python stili liste işlemeyi yapmak (bir listeyi diğerini yapmak için filtrelemek) daha basit olduğundan (IMHO) çok daha tek tip işlemeye izin verir. Matt'in Beta 3'ten önceki cevabına göre, bir dilimi eşlemek için geçici bir dizi oluşturmanız gerekiyordu. Yeni kod artık daha basit:
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
(adil olmak gerekirse, foo hala bir dilim)
Referans:
http://adcdownload.apple.com//Developer_Tools/xcode_6_beta_3_lpw27r/xcode_6_beta_3_release_notes__.pdf
Önemli Değişiklikler, Çözülen Sorunlar, - Swift Dili, Paragraf 1
"Swift'deki Dizi, Dictionary ve String gibi tam değerli semantiğe sahip olacak şekilde tamamen yeniden tasarlandı ... m"