0

在 Xcode 8.3.2 中编译良好的项目在将可选/非可选值与 == 进行比较时显示了许多编译错误

我发现的是删除 coparison <> 的旧提案: https ://github.com/apple/swift-evolution/blob/master/proposals/0121-remove-optional-comparison-operators.md

所以现在在 Xcode 9 中,我什至无法比较两个选项:

    let xxx: String? =  "A"
    let yyy: String? = "B"

    if xxx == yyy { //ERROR: Ambiguous use of operator '=='

    }

有人可以向我指出一个可以解释这一点的资源吗?或者它只是一个暂时的错误?

谢谢

4

1 回答 1

0

使用 XCode 9 beta (9M136h) 和 Swift 4,您的指令可以编译。

接受可选操作数的==!=的变体仍然有用,并且它们的结果不足为奇,因此它们将保留.

删除接受可选操作数的 <、<=、> 和 >= 版本。

所以你的指令应该在 Swift 3.2 或 Swift 4 中工作。检查你在构建设置中使用的 swift 版本 - > Swift 语言版本。

于 2017-07-20T13:13:31.433 回答