你要分.tonight
和.distance
成两种类型条件
struct barStruct{
var tonight : String
var distance : Int
}
var bars = [barStruct(tonight: "Closed", distance: 12),
barStruct(tonight: "Closed", distance: 20),
barStruct(tonight: "Closed", distance: 1),
barStruct(tonight: "Closed", distance: 32),
barStruct(tonight: "Open", distance: 11),
barStruct(tonight: "Open", distance: 9),
barStruct(tonight: "Open", distance: 23),
barStruct(tonight: "Open", distance: 56),]
bars.sort { (lhs: barStruct, rhs: barStruct) -> Bool in
if lhs.tonight == "Closed"{
if rhs.tonight == "Closed"{
//both on bottom level, addtionaly sort by distance
return lhs.distance < rhs.distance
}else{
//left on bottom level, right on top level
return false
}
}else{
if rhs.tonight == "Closed"{
//left on top level, right on bottom level
return true
}else{
//both on top level, addtionaly sort by distance
return lhs.distance < rhs.distance
}
}
}
print(bars)
[barStruct(今晚: “打开”,距离:9),barStruct(今晚: “打开”, barStruct(今晚:“打开”,距离:23),barStruct(今晚:“打开”,距离:56),barStruct(今晚:“关闭”,距离:1),barStruct(今晚:“关闭“,距离:12),barStruct(今晚:”关闭“,距离:20),barStruct(今晚:”关闭“,距离:32)]
这是命名您的结构以大写字母开始 –
你应该张贴斯威夫特约定你的结构声明以及你想要的结果 –