swift 在swift中使用特征和协议的演示。

Posted

tags:

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

//: Playground - noun: a place where people can play

import Foundation

protocol PrimitiveSequenceType {
    associatedtype Element
    associatedtype TraitType
    
    func append(item: Element)
}

struct PrimitiveSequence<Trait, E> {}

enum SingleTrait {}
enum MaybeTrait {}

extension PrimitiveSequence: PrimitiveSequenceType {
    typealias Element = E
    typealias TraitType = Trait
    
    func append(item: E) {
        print("append in E")
    }
}

extension PrimitiveSequenceType where TraitType == SingleTrait {
    func create() {
        print("create:SingleTrait called");
    }
}

extension PrimitiveSequenceType where TraitType == MaybeTrait {
    func create() {
        print("create:MaybeTrait called");
    }
}

let single = PrimitiveSequence<SingleTrait, Int>()
let maybe = PrimitiveSequence<MaybeTrait, String>()

single.create()
maybe.create()

以上是关于swift 在swift中使用特征和协议的演示。的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中对符合协议的对象和变量进行单元测试

swift 使用GCD和Swift锁定演示(游乐场)

如何在swift中使用视觉框架从其特征点中提取外唇

在 swift 中使用协议作为数组类型和函数参数

为啥我不能在 Swift 中使用 let in 协议?

Swift中协议的简单介绍