gpt4 book ai didi

swift - Swift关联类型编译错误

转载 作者:行者123 更新时间:2023-11-30 13:27:38 25 4
gpt4 key购买 nike

我正在阅读Apple出版的Swift书籍。我有 XCode 7.2.1下面的代码给出了编译错误。我在 Playground 上使用了代码。

protocol Container {
associatedtype ItemType
mutating func append(item: ItemType)
var count: Int { get }
subscript(i: Int) -> ItemType { get }
}

您可以看到代码here在页面的后半部分。

错误如下: enter image description here

我不确定这是否是对代码的正确更改;但是当我将协议(protocol)中的第一行从

更改为
associatedtype ItemType

typealias ItemType

错误消失。

最佳答案

Xcode 7.2.1 仍然基于 Swift 2.1。

在 Xcode 7.3(当前版本的 Xcode)中,Xcode 开始使用 Swift 版本 2.2。

在 Swift 2.1 和 2.2 版本之间,协议(protocol)中 typealias 的使用已更改为新的 linkedType 关键字。

话虽如此,您在 Apple 出版的 Swift 书中查看的文档已更新为 Swift 2.2 语法,但是您使用的 Xcode 版本尚未更新为 Swift 2.2 语法。

因此,正如您正确了解的那样,通过在协议(protocol)中使用 typealias 代替 linkedType,它将在 Xcode 7.2.1 中正确编译。

但可能应该建议您如果可能的话,继续升级到 Xcode 7.3 并使用 Swift 2.2。如果您这样做,Apple Swift 书中更新的 Swift 2.2 示例将在您的 Xcode 中完美运行。

关于swift - Swift关联类型编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36967819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com