Trong trường hợp đơn giản nhất , với Swift 3, bạn có thể sử dụng Array
's init(_:)
initializer để có được một Array
từ Set
. init(_:)
có tuyên bố sau:
init<S>(_ s: S) where S : Sequence, Element == S.Iterator.Element
Tạo một mảng chứa các phần tử của một chuỗi.
Sử dụng:
let stringSet = Set(arrayLiteral: "car", "boat", "car", "bike", "toy")
let stringArray = Array(stringSet)
print(stringArray)
// may print ["toy", "car", "bike", "boat"]
Tuy nhiên , nếu bạn cũng muốn thực hiện một số hoạt động trên mỗi phần tử của bạn Set
trong khi biến nó thành một Array
, bạn có thể sử dụng map
, flatMap
, sort
, filter
và các phương pháp chức năng khác được cung cấp bởi Collection
giao thức:
let stringSet = Set(["car", "boat", "bike", "toy"])
let stringArray = stringSet.sorted()
print(stringArray)
// will print ["bike", "boat", "car", "toy"]
let stringSet = Set(arrayLiteral: "car", "boat", "car", "bike", "toy")
let stringArray = stringSet.filter { $0.characters.first != "b" }
print(stringArray)
// may print ["car", "toy"]
let intSet = Set([1, 3, 5, 2])
let stringArray = intSet.flatMap { String($0) }
print(stringArray)
// may print ["5", "2", "3", "1"]
let intSet = Set([1, 3, 5, 2])
// alternative to `let intArray = Array(intSet)`
let intArray = intSet.map { $0 }
print(intArray)
// may print [5, 2, 3, 1]
let array = Array(someSet)
cũng hoạt động trong Swift 2