Как сортировать массив структур в swift
У меня есть массив структуры, и я хотел бы иметь возможность сортировать его по любой из двух переменных, используя sort (), если это возможно
struct{
var deadline = 0
var priority = 0
}
Я посмотрел sort () в документации для языка программирования Swift, но он показывает только простые массивы. можно ли использовать sort() или мне придется создать свой собственный?
1 ответов
сортировка внутри той же переменной массива
функции сортировки ниже точно такие же, единственная разница, насколько они короткие и выразительные:
полное объявление:
myArr.sort { (lhs: EntryStruct, rhs: EntryStruct) -> Bool in
// you can have additional code here
return lhs.deadline < rhs.deadline
}
сокращенная декларация закрытия:
myArr.sort { (lhs:EntryStruct, rhs:EntryStruct) in
return lhs.deadline < rhs.deadline
}
// ... or even:
myArr.sort { (lhs, rhs) in return lhs.deadline < rhs.deadline }
компактное объявление закрытия:
myArr.sort { .deadline < .deadline }
Сортировать по новой переменной массива
полное объявление:
let newArr = myArr.sorted { (lhs: EntryStruct, rhs: EntryStruct) -> Bool in
// you can have additional code here
return lhs.deadline < rhs.deadline
}
сокращенная декларация закрытия:
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 }
компактный заявление о закрытии:
let newArr = myArr.sorted { .deadline < .deadline }