swift Swift中协议和扩展的各种用途

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift Swift中协议和扩展的各种用途相关的知识,希望对你有一定的参考价值。

protocol ExampleProtocol {
    associatedtype AType
    func example(toString: AType)
}

class Example: ExampleProtocol {
    
}

class ExampleOverride: ExampleProtocol  {
    typealias AType = String
}

extension ExampleProtocol {
    func example(toString: String) {
        print("\(toString) From Base Example Protocol")
    }
}

extension ExampleProtocol where Self: ExampleOverride {
    func example(toString: String) {
        print("\(toString) From Overriding Example Protocol Extension")
    }
}

let example = Example()
let exampleOverride = ExampleOverride()

example.example(toString: "Test")           //Test From Base Example Protocol
exampleOverride.example(toString: "Test")   //Test From Overriding Example Protocol Extension

以上是关于swift Swift中协议和扩展的各种用途的主要内容,如果未能解决你的问题,请参考以下文章

swift 协议和扩展迅速

Swift学习笔记-协议和扩展

Swift3 - 扩展类型集合的问题

Swift 协议扩展中的“关联类型”难以理解

Swift 学习笔记(面向协议编程)

符合协议和类的 Swift 属性