arrays - 为什么像这样对数组进行排序不起作用?

标签 arrays swift

struct Home {
var street:String
var number:Int
}

func getHouse() -> [Home] {
var house = [Home]()

let house1 = Home(street: "Jacob Street", number: 26)
house.append(house1)

let house2 = Home(street: "High Road", number: 58)
house.append(house2)

let house3 = Home(street: "Zebra Close", number: 12)
house.append(house3)

return house
}

var houses = [Home]()
houses = getHouse()

houses.sort({$0.street < $1.street })

for i in 0..<houses.count {

print("\(houses[i].street)")
}

在这个例子中,我试图按街道的字母顺序对它们进行排序,或者如果需要的话可能按数字对它们进行排序。它们似乎仍然按照我输入的顺序排列,而不是按照我想要的字母顺序排列。

最佳答案

sort 返回一个新数组,但您没有对结果做任何事情。你可以做

let sortedHouses = houses.sort {$0.street < $1.street }

houses.sortInPlace {$0.street < $1.street }

关于arrays - 为什么像这样对数组进行排序不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36217255/

相关文章:

java - 合成采样声音

Swift:addGestureRecognizer 不适用于 stackview 子项

swift - UISlider布局忽略宽度

ios - 将大图像加载为移动背景 View 时如何减少 Swift 中的内存使用量?

multithreading - Swift 对异步编程有什么语言级别的支持(如果有的话)?

c++ - 创建网格数组

php - 初学者使用 php 创建留言簿,将信息记录到文本文件并在单独的页面上显示数据

ios - 如何使用 UIGestureRecognizers 相对于触摸位置旋转 UIScrollView 内的 UIImageView

arrays - 更改 .each 循环中引用的数组元素的值?

c - 二维数组的段错误