我有一个结构数组,如果可能的话,我希望能够使用 sort() 按两个变量中的任何一个对它进行排序
struct{
var deadline = 0
var priority = 0
}
我查看了 Swift 编程语言文档中的 sort(),但它只显示了简单的数组。可以使用 sort() 还是我必须自己构建?
最佳答案
在同一个数组变量中排序
下面的排序函数完全相同,唯一的区别是它们有多简短和表达力:
完整声明:
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 }
关于arrays - 你如何在 swift 中对结构数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24781027/