gpt4 book ai didi

swift - 'Equatable' 不能在扩展中自动合成

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:12 30 4
gpt4 key购买 nike

这个有效:

// Conformance to protocol correctly synthesized by compiler 
struct MyStruct: Equatable {
}

这不是:

struct MyStruct { 
}
// Doesn't work, even though the extension is in the same file
extension MyStruct: Equatable {
}

错误很明显:

implementation of 'Equatable' cannot be automatically synthesized in an extension

我担心的是,根据 Swift 的提议 SE-0185 ,这应该被允许:

SE-0185: Synthesizing Equatable and Hashable conformance

Users must opt-in to automatic synthesis by declaring their type as Equatable or Hashable without implementing any of their requirements. This conformance must be part of the original type declaration or in an extension in the same file (to ensure that private and fileprivate members can be accessed from the extension).

它说这是在 Swift 4.1 ( apple/swift#9619 ) 中实现的。

但是,在尝试编译时,出现了之前显示的错误。我正在使用 Ubuntu 16.04,它在这两个版本的 swift 上失败了:

  • Swift 版本 4.1-dev(LLVM 260a172ffb,Clang cd84be6c42,Swift 05b1b2be7c)
  • Swift 版本 4.2-dev(LLVM d30879863e、Clang 041fd44ebe、Swift b08fb12358)

我错过了什么吗?

最佳答案

好消息

最近的开发。 2018 年 6 月 5 日的快照按预期工作:


坏消息

最新发布版本 4.1.2不工作。

关于swift - 'Equatable' 不能在扩展中自动合成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50419495/

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