gpt4 book ai didi

swift - `_?` 在 Swift 中是什么意思?

转载 作者:搜寻专家 更新时间:2023-10-31 22:09:35 25 4
gpt4 key购买 nike

几天前,我将旧的 Xcode 8 项目转换为 Xcode 9 中的 Swift 4。我注意到生成了额外的 Swift 代码以及代码上方的解释。

这是它的样子:

// FIXME: comparison operators with optionals were removed from the Swift Standard Libary.
// Consider refactoring the code to use the non-optional operators.
fileprivate func < <T : Comparable>(lhs: T?, rhs: T?) -> Bool {
switch (lhs, rhs) {
case let (l?, r?):
return l < r
case (nil, _?):
return true
default:
return false
}
}

我试图理解代码的作用,并在代码中找到我认为有点不寻常的_?

我猜它是未使用的可选的,因为 _ 意味着我们不会使用特定的变量,所以我们不关心变量的名称,而 ? 是可选的语法.

感谢您的帮助!

最佳答案

_ 是匹配任何内容的通配符模式,参见示例

x?可选模式,是.some(x)的快捷方式,它匹配不是 nil 的可选值。

这里我们有两者的组合:_? 匹配任何是不是 nil

case (nil, _?) 如果左操作数为 nil 则匹配而正确的操作数不是。您也可以将其写成 case (.none, .some)

Xcode 可以在从旧的 Swift 版本迁移的过程中插入这个函数,比较 Strange generic function appear in view controller after converting to swift 3 .

关于swift - `_?` 在 Swift 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53079027/

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