你如何排序结构的迅速数组 [英] How do you sort an array of structs in swift

查看:119
本文介绍了你如何排序结构的迅速数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个结构的数组,我希望能够通过任何两个变量的使用排序()进行排序,如果可能的

I have an array of a struct and I would like to be able to sort it by either of the two variables using sort() if possible

struct{
    var deadline = 0
    var priority = 0
}

我的斯威夫特编程语言的文档中看着排序(),但只显示简单的数组。可以排序()一起使用,否则我将不得不建立自己的?

I looked at sort() in the documentation for the Swift programming language but it shows only simple arrays. can sort() be used or will I have to build my own?

推荐答案

排序功能娄是完全一样的,唯一的区别是如何短期和前pressive它们分别是:

Sort within the same array variable

Sort functions bellow are exactly the same, the only difference how short and expressive they are:

完整声明:

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 }

这篇关于你如何排序结构的迅速数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆