gpt4 book ai didi

ios - 作为构造函数的闭包?

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

我在 objc io book 上看过这样的例子

callback(Result {
if let e = error {
throw e
}

guard let d = data else {
throw NoDataError()
}

return try JSONDecoder().decode(User.self, from: d)
})

回调在哪里

“callback: @escaping (Result<User, Error>) -> ()

似乎 Result 是 Swift 定义的枚举类型,它正在使用闭包来创建自己?

但是我没有看到任何关于这个的文档

最佳答案

有文档。

表达式表示 init(catching:) 的尾随闭包语法Result的方法.说明是

Creates a new result by evaluating a throwing closure, capturing the returned value as a success, or any thrown error as a failure.

完整的语法是

callback(Result(catching: {
if let e = error {
throw e
}

guard let d = data else {
throw NoDataError()
}

return try JSONDecoder().decode(User.self, from: d)
})
)

另请参阅 Preserving the Results of a Throwing Expression

关于ios - 作为构造函数的闭包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56608458/

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