Tóm lược:
Các câu trả lời ở trên đúng cho đến bản Beta 3 (và có thể thay đổi lại trong các bản phát hành trong tương lai)
Slice bây giờ hoạt động giống như một mảng, nhưng như @matt đã nói ở trên, thực sự là một bản sao nông cho một mảng bên dưới, cho đến khi thực hiện thay đổi. Slices (bây giờ) xem ảnh chụp nhanh các giá trị ban đầu,
Cũng lưu ý rằng cú pháp lát cắt đã thay đổi:
[from..upToButNotIncluding] -> [from..<upToButNotIncluding]
Thí dụ:
var arr = ["hello", "world", "goodbye"]
var arrCopy = arr
let slice = arr[0..<2]
arr[0] = "bonjour"
arr
arrCopy
slice
Điều này cho phép xử lý thống nhất hơn nhiều, vì việc xử lý danh sách kiểu python đơn giản hơn (IMHO) - lọc một danh sách này để tạo một danh sách khác. theo câu trả lời của Matt trước Beta 3, bạn phải tạo một mảng tạm thời để ánh xạ một lát cắt. Mã mới hiện đơn giản hơn:
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
(mặc dù công bằng mà nói, foo vẫn là một phần nhỏ)
Tài liệu tham khảo:
http://adcdownload.apple.com//Developer_Tools/xcode_6_beta_3_lpw27r/xcode_6_beta_3_release_notes__.pdf
Các thay đổi quan trọng, các vấn đề đã được giải quyết, - Ngôn ngữ Swift, Đoạn 1
"Mảng trong Swift đã được thiết kế lại hoàn toàn để có đầy đủ ngữ nghĩa giá trị như Từ điển và Chuỗi ... m"