swift 中的 Sink 协议是什么?

JuJ*_*oDi 4 swift

Swift 标头将 Sink 协议定义为

protocol Sink {
    typealias Element
    func put(x: Element)
}
Run Code Online (Sandbox Code Playgroud)

什么是 Sink 协议,关于 Swift 和 Cocoa 设计模式,它应该用于什么?

我能说的唯一实现这个协议的是

struct IntEncoder : Sink {
    var asInt: UInt64
    var shift: UInt64
    func put(x: CodeUnit)
}
Run Code Online (Sandbox Code Playgroud)

nsc*_*hum 6

水槽(如“厨房水槽”)代表生产者/消费者对的消费者端。它是一个抽象接口,仅接受某种输入。因此,任何产生对象的东西都可以Sink作为交付对象的一种方式。这是生产者传递对象所需的关于消费者的最少知识。

队列和集合是仅存储输入的简单接收器的示例。网络连接或记录器可以充当立即处理输入的接收器。