swift 函数传递

179 阅读1分钟

Rxswift中事件方法的处理函数都是以block形式进行保存,事件触发进行调用。附一个observer的类似案例:

class Observer {
    
    public typealias EventHandler = (String) -> Void
    
    let observer: EventHandler
    
    init(eventHandler: @escaping EventHandler) {
        self.observer = eventHandler
    }
    func next() {
        self.observer("dow")
    }
}

Observer构造方法入参为一个函数

使用

public func on(_ name: String) {
    print(name)
}

let observer = Observer(eventHandler: on)
observer.next()