Swift如何将闭包从一个函数传递到另一个函数?

Swift如何将闭包从一个函数传递到另一个函数?,swift,closures,Swift,Closures,假设我有两个功能: functionA(@escaping closureA: ((Double) -> ())) { // Some Code for function A } functionB(@escaping closureB: ((Double) -> ())) { // Some Code for function B } 如果要从函数A调用函数B,如何将函数A的闭包参数作为参数传递给函数B的参数 看起来像这样的东西: func A(@escapin

假设我有两个功能:

functionA(@escaping closureA: ((Double) -> ())) {
    // Some Code for function A
}

functionB(@escaping closureB: ((Double) -> ())) {
    // Some Code for function B
}
如果要从函数A调用函数B,如何将函数A的闭包参数作为参数传递给函数B的参数

看起来像这样的东西:

func A(@escaping closureA: ((Double) -> ())) {
    // Some Code for function A
    B(<trying to pass closureA>)

}

func B(@escaping closureB: ((Double) -> ())) {
    // Some Code for function B
}
func A(@escaping closureA:((双)->()){
//函数A的一些代码
B()
}
函数B(@escaping closureB:((双)->()){
//函数B的一些代码
}

试试下面的例子

func functionA(closure:(()->Void), completionHandler: @escaping (Double) -> Void) {
    closure()
    completionHandler(1.0)
}

func  functionB(completionHandler: @escaping (Double) -> Void) {
    completionHandler(2.0)
}

func nestedClosure() {
    functionA(closure: {
        functionB { (value) in
            print("\(value)")
        }
    }, completionHandler: { (value) in
        print("\(value)")
    })
}

您需要将in参数转义到要开始的闭包,然后在调用发送到functionB的闭包时,需要提供一个值作为参数

func functionA(closureA: (@escaping (Double) -> ())) {
    functionB(closureB: closureA)
}

func functionB( closureB: (@escaping (Double) -> ())) {
    closureB(3.2)
}
范例

functionA(closureA: {print($0 * 2.0)})
6.4


谢谢!这个解决方案正是我想要的。欢迎兄弟。检查你的正确答案。