Подтвердить что ты не робот

Как сортировать массив структур в быстром

У меня есть массив структуры, и я хотел бы иметь возможность сортировать его по любой из двух переменных, используя sort(), если возможно

struct{
    var deadline = 0
    var priority = 0
}

Я просмотрел sort() в документации для языка программирования Swift, но он показывает только простые массивы. может ли sort() использоваться или мне нужно будет создать собственный?

4b9b3361

Ответ 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 { $0.deadline < $1.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 { $0.deadline < $1.deadline }