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

Swift:如何让协议关联类型自动推断遵循类的类型

Swift协议关联类型自动推断简化实现

你可以通过给协议的关联类型设置默认值为Self,让Swift自动推断关联类型T,从而省去手动声明typealias的步骤。

修改后的协议定义

protocol Conforming {
    associatedtype T = Self
    func returnSelf() -> T
}

简化后的类实现

这样遵循协议的类无需额外声明typealias,直接实现方法即可:

class Test: Conforming {
    func returnSelf() -> Test {
        return self
    }
}

甚至可以进一步简化,让方法返回Self,后续子类继承时也能自动适配返回类型:

class Test: Conforming {
    func returnSelf() -> Self {
        return self
    }
}

原理说明

当协议的关联类型T设置了= Self的默认值后,只要你实现的returnSelf()方法返回类型与当前类(Self)匹配,Swift就会自动将T推断为当前类的类型,完全不需要手动指定typealias。如果有特殊场景需要让T指向其他类型,依然可以手动添加typealias T = 目标类型来覆盖默认值,灵活性不受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:40:25