有没有一种方法可以在元组数组上调用reduce函数来查找最大值?
例如:
例如:
struct Gate{
var maxedOpenGates = 1
var GatesOpen : [(openOrdered : Int, gateNum : Int )] = []
init(defaultSelected : Int = 0){
GatesOpen.append(openOrdered : 1, gateNum : defaultSelected)
}
private func manipulateGates(gates : [SegmentButton]){
for i in GatesOpen{
gates[i.gateNum].toggleSelected()
}
}
mutating func openGate(index : Int, buttons : [SegmentButton]){
if GatesOpen.count < maxedOpenGates{
GatesOpen.append( openOrdered: GatesOpen.count , gateNum: index)
}else{
//////Finding the gate that was Opened the longest////
let lastGate = GatesOpen.reduce(Int.min,{ max($0,$1) })
}
manipulateGates(buttons)
}
}
我试图根据openOrdered来减少A。
let lastGate = GatesOpen.reduce(Int.min,{ max($0,$1) })
dropFirst(gatesOpen)
比手动切片操作更好。如果你想要考虑到空数组的情况,可以使用first.map
来返回nil
:let lastGate = gatesOpen.first.map { fst in dropFirst(gatesOpen).reduce(fst) { $0.openOrdered < $1.openOrdered ? $1 : $0 } }
- Airspeed Velocity