【发布时间】:2016-10-10 04:04:48
【问题描述】:
我正在从 Apple 论坛编写一些代码。一切似乎都正确,但我不断收到两个错误。有人请帮忙。代码如下,后面跟着错误。
protocol Container{
associatedtype ItemType
mutating func append(item: ItemType)
var count:Int{get}
subscript(i:Int)->ItemType{get}
}
extension Array: Container {}
func checkToSeeIfItemsEqual<C1:Container, C2:Container>(container1:C1, container2:C2) -> Bool where C1.ItemType == C2.ItemType, C1.ItemType:Equatable{
if container1.count != container2.count{
return false
}
for i in 0..<container1.count{
if container1[i] != container2[i]{
return false
}
}
return true
}
var damnArray = [1, 2, 4]
var damnArray2 = [1, 2, 4]
let theBool = checkToSeeIfItemsEqual(container1: damnArray, container2: damnArray2)
print(theBool)
【问题讨论】:
-
您的 append 方法定义略有不同。您需要添加一个下划线: mutating func append(_ item: ItemType) 。但是还有其他问题......我让它工作而不是为你的数组使用任何类型
-
我认为在尝试查看“任何”是否相等时可能会吓坏
标签: arrays swift inheritance