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/