0
這需要幫助的是我試圖用在使用雨燕INOUT可選
func merge(inout A: DNode?, inout And B: DNode?) -> DNode? {
if A == nil && B == nil {
return nil
}
if A == nil {
return B
}
if B == nil {
return A
}
return A!.isLessThan(B!) ? A! : B!
}
這裏的功能是我試圖使用功能「合併」
class Heap {
var minDNode: DNode?
func start(inout newNode: DNode) {
self.minDNode = merge(&self.minDNode, And: &newNode) // error
// Cannot invoke 'merge' with an argument list of type '(inout DNode?, And: inout DNode)'
}
func merge(inout A: DNode?, inout And B: DNode?) -> DNode? {
...
}
}
我怎樣才能修復問題?
望着從Swift optional inout parameters and nil答案,
使
var minDNode: DNode?
到
var minDNode: DNode? = nil
沒有解決問題
爲什麼'merge()'獲取inout參數?參數沒有修改,所以這似乎是一個不必要的複雜。 –
哦,,我從功能 –