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

Swift泛型如何表示「无类型」:适配Google Promises无返回值场景

解决方案

针对无返回值的Promise使用场景,你可以直接使用Swift标准库自带的以下几种类型替换SomeType,不需要额外自定义非泛型实现:

  • 场景1:Promise正常结束时不需要携带任何返回值
    直接使用Void作为泛型参数即可,示例代码:
    let promise = Promise<Void>.pending()
    
    结束Promise时仅需要传入空元组()作为resolve参数:promise.resolve(()),完全不需要处理多余的返回值,适配异步流程控制、异常捕获的使用需求。
  • 场景2:需要仅允许nil作为合法resolve值
    使用Void?可选类型作为泛型参数,resolve时直接传入nil即可,符合你要求的只有nil为合法值的诉求。
  • 场景3:Promise永远不会正常resolve,只会抛出异常
    使用Never作为泛型参数,该类型没有任何可用实例,天然表达不会产生合法返回值的语义。

内容的提问来源于stack exchange,提问作者Tomáš Kafka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:15:01