swift 函式傳遞

d_d發表於2018-11-23

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()
複製程式碼

相關文章