内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
NSSet
可以转换为Array
使用set.allObjects()
但是,新的方法中没有这样的方法。Set
(与SWIFT 1.2介绍)。仍然可以通过将SWIFT集转换为NSSet并使用allObjects()
方法
可以使用给定SWIFT中的所有元素创建数组Set
简单地
let array = Array(someSet)
这是因为Set
符合SequenceType
协议和Array
可以用序列初始化
let mySet = Set(["a", "b", "a"]) // Set<String> let myArray = Array(mySet) // Array<String> print(myArray) // [b, a]
初始化器以获得Array
从Set
...init(_:)
有以下声明:
init<S>(_ s: S) where S : Sequence, Element == S.Iterator.Element
用法:
let stringSet = Set(arrayLiteral: "car", "boat", "car", "bike", "toy") let stringArray = Array(stringSet) print(stringArray) // may print ["toy", "car", "bike", "boat"]
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]