Sie können eine Erweiterung machen, so dass es eine Anordnung von zwei Arrays zurückgeben kann, die Arbeit mit Ints, Streicher, etc:
extension Array {
func split() -> [[Element]] {
let ct = self.count
let half = ct/2
let leftSplit = self[0 ..< half]
let rightSplit = self[half ..< ct]
return [Array(leftSplit), Array(rightSplit)]
}
}
let deck = ["J", "Q", "K", "A"]
let nums = [0, 1, 2, 3, 4]
deck.split() // [["J", "Q"], ["K", "A"]]
nums.split() // [[0, 1], [2, 3, 4]]
Aber ein benanntes Tupel Rückkehr besser sogar, weil es erzwingt die Tatsache, dass Sie erwarten genau zwei Arrays als Ergebnis:
extension Array {
func split() -> (left: [Element], right: [Element]) {
let ct = self.count
let half = ct/2
let leftSplit = self[0 ..< half]
let rightSplit = self[half ..< ct]
return (left: Array(leftSplit), right: Array(rightSplit))
}
}
let deck = ["J", "Q", "K", "A"]
let splitDeck = deck.split()
print(splitDeck.left) // ["J", "Q"]
print(splitDeck.right) // ["K", "A"]
Hinweis: Gutschriften geht an Andrei und Qbyte für die erste richtige Antwort geben, ich bin nur Informationen hinzufügen.
Check this out: http://swiftdoc.org/func/split/ –