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

Swift协议扩展中为getKey方法设默认参数遇返回值未使用警告如何解决?

正确实现方式

你原来的扩展存在两个问题:一是扩展里的getKey方法未声明返回值,和协议要求的-> String签名不匹配;二是无返回值的写法会因忽略协议方法的返回值触发警告。

正确的扩展需要保持返回值一致,同时给参数加上默认值,代码如下:

extension ApiEndpointsProtocol {
    func getKey(for endpoint: API.Keys, withChar: Bool = true) -> String {
        getKey(for: endpoint, withChar: withChar)
    }
}

逻辑说明

  • 协议中定义的getKey(for:withChar:)是遵守协议的类型必须实现的核心方法,扩展里的同名方法只是给withChar参数补充了默认值true。
  • 当你调用getKey(for: someEndpoint)时,会自动使用默认值true,并转发到具体实现的核心方法上,同时把核心方法的返回值正常返回,不会再出现返回值未使用的警告。

这样处理后,遵守ApiEndpointsProtocol的类型只需要实现不带默认参数的核心方法,就能同时支持带参数和省略参数的两种调用方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:55:20