2014-07-16 17 views
10

sortiere ich ein Array einer Struktur haben, und ich möchte in der Lage sein, sie durch eine der beiden Variablen sortieren Sah in der Dokumentation für die Swift-Programmiersprache sort(), aber es zeigt nur einfache Arrays. kann sort() verwendet werden oder muss ich mein eigenes bauen?Wie kann ein Array von Strukturen in schnellen

+0

möglich Duplikat [Swift wie Array von benutzerdefinierten Objekten von Eigenschaftswert sortieren] (http://stackoverflow.com/questions/24130026/swift-how-to-sort-array-of-custom-objects-by- Eigentumswert) –

Antwort

23

Sortieren innerhalb der gleichen Array-Variable

Sortierfunktion unten sind genau die gleichen, nur mit dem Unterschied, wie kurz und ausdrucksstark sie sind:

Volldeklaration:

myArr.sort { (lhs: EntryStruct, rhs: EntryStruct) -> Bool in 
    // you can have additional code here 
    return lhs.deadline < rhs.deadline 
} 

Verkürzte Abschlusserklärung:

myArr.sort { (lhs:EntryStruct, rhs:EntryStruct) in 
    return lhs.deadline < rhs.deadline 
} 
// ... or even: 
myArr.sort { (lhs, rhs) in return lhs.deadline < rhs.deadline } 

Kompaktverschluß dez laration:

myArr.sort { $0.deadline < $1.deadline } 

Sortieren zu einem neuen Array variable

Volldeklaration:

let newArr = myArr.sorted { (lhs: EntryStruct, rhs: EntryStruct) -> Bool in 
    // you can have additional code here 
    return lhs.deadline < rhs.deadline 
} 

Verkürzte Abschlusserklärung:

let newArr = myArr.sorted { (lhs:EntryStruct, rhs:EntryStruct) in 
    return lhs.deadline < rhs.deadline 
} 
// ... or even: 
let newArr = myArr.sorted { (lhs, rhs) in return lhs.deadline < rhs.deadline } 

Compact Abschlusserklärung:

let newArr = myArr.sorted { $0.deadline < $1.deadline } 
Verwandte Themen