Как сортировать массив структур в 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 }