Als ich zwei Sortierbedingungen festlegen wollte, fragte ich mich, wie ich sie etwa eine Stunde lang schreiben sollte. Qiita hat keinen ähnlichen Artikel und vor allem war ich beeindruckt von "Ich sollte so schreiben !!", also teile es bitte.
import Foundation
// Struktur, die Gewicht und Größe hält
struct Person {
let seq: Int
let weight: Int
let height: Int
init(seq: Int, weight w: Int, height h: Int) {
self.seq = seq
self.weight = w
self.height = h
}
}
func sortTest() {
// Testdaten erstellen
// Anzahl der Personen
let N = 10
let w = [50, 42, 69, 80, 79, 81, 70, 53, 59, 50]
let h = [184, 170, 170, 169, 193, 154, 147, 180 ,170, 171]
let personDate = (0..<N).map {
Person(seq: $0, weight: w[$0], height: h[$0])
}
drucken ("____________ vor dem Sortieren")
_ = personDate.map {
print ("Identifikationsnummer \ ($ 0.seq), Größe: \ ($ 0.height), Gewicht: \ ($ 0.weight)")
}
// Erste Bedingung: Kürzeste zuerst
// Zweite Bedingung: Wenn die Höhe gleich ist, sortieren Sie in aufsteigender Reihenfolge des Gewichts
let sortedPersonDate = personDate.sorted {
if $0.height != $1.height { return $0.height < $1.height }
else {
return $0.weight < $1.weight
}
}
print ("__________________ Nach dem Sortieren")
_ = sortedPersonDate.map {
print ("Identifikationsnummer \ ($ 0.seq), Größe: \ ($ 0.height), Gewicht: \ ($ 0.weight)")
}
}
____________________ Vor dem Sortieren
Identifikationsnummer 0, Größe: 184, Gewicht: 50
Identifikationsnummer 1, Größe: 170, Gewicht: 42
Identifikationsnummer 2, Größe: 170, Gewicht: 69
Identifikationsnummer 3, Größe: 169, Gewicht: 80
Identifikationsnummer 4, Größe: 193, Gewicht: 79
Identifikationsnummer 5, Größe: 154, Gewicht: 81
Identifikationsnummer 6, Größe: 147, Gewicht: 70
Identifikationsnummer 7, Größe: 180, Gewicht: 53
Identifikationsnummer 8, Größe: 170, Gewicht: 59
Identifikationsnummer 9, Größe: 171, Gewicht: 50
____________________ Nach dem Sortieren
Identifikationsnummer 6, Größe: 147, Gewicht: 70
Identifikationsnummer 5, Größe: 154, Gewicht: 81
Identifikationsnummer 3, Größe: 169, Gewicht: 80
Identifikationsnummer 1, Größe: 170, Gewicht: 42
Identifikationsnummer 8, Größe: 170, Gewicht: 59
Identifikationsnummer 2, Größe: 170, Gewicht: 69
Identifikationsnummer 9, Größe: 171, Gewicht: 50
Identifikationsnummer 7, Größe: 180, Gewicht: 53
Identifikationsnummer 0, Größe: 184, Gewicht: 50
Identifikationsnummer 4, Größe: 193, Gewicht: 79
Recommended Posts