你要分.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)]
這是命名您的結構以大寫字母開始 –
你應該張貼斯威夫特約定你的結構聲明以及你想要的結果 –