You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将Swift异步抛出表达式转换为Result类型?

异步抛出表达式能否转为Result类型?

当然可以,你给出的异步写法是完全合法的。

按照苹果开发者文档《Preserving the Results of a Throwing Expression》里的说明,同步抛出表达式可以这样转为Result类型:

let singleSample = Result { try UnreliableRandomGenerator().random() }

对应到异步抛出的场景,只需要在闭包内的抛出调用前加上await关键字即可,写法如下:

let singleSample = Result { try await UnreliableRandomGenerator().random() }

Swift的Result类型支持接收异步抛出的闭包,会自动把异步操作的成功返回值或抛出的错误包装成Result<Success, Error>实例——成功时存储操作的返回值,失败时捕获对应的错误。

内容的提问来源于stack exchange,提问作者softshipper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 21:24:54