Swift泛型函数保存为可变

给出一个类:

class First<T> {

}

和类的方法第一:

func second<U>(closure: (value: T) -> U) {

}

我如何将作为参数传递的闭包存储到第二个,以便我可以在以后调用它?

最佳答案 您需要在类中声明U,以便您拥有存储的类型:

class First<T,U> {
    var f : ((T) -> U)! = nil
    func second(closure: @escaping (T) -> U) {
        self.f = closure
    }
}
点赞