Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift中使用初始值设定项作为闭包_Ios_Swift - Fatal编程技术网

Ios 如何在Swift中使用初始值设定项作为闭包

Ios 如何在Swift中使用初始值设定项作为闭包,ios,swift,Ios,Swift,如何将初始值设定项作为参数传递给函数 class A { var num: Int init() { num = 3 } } func f(# createA: () -> A) -> A { return createA() } f(createA: A) // This does not work 更新 感谢顺磁性羊角面包的回答: f(createA: { A() }) // Correct 但是如果初始值设定项有输入

如何将初始值设定项作为参数传递给函数

class A {
    var num: Int
    init() {
        num = 3
    }
}

func f(# createA: () -> A) -> A {

   return createA()
}


f(createA: A)   // This does not work
更新

感谢顺磁性羊角面包的回答:

f(createA: { A() }) // Correct
但是如果初始值设定项有输入呢

class A {
    var num: Int
    init(a : Int) {
        num = 3
    }
}
func f(# createA: (a: Int) -> A) -> A {

    return createA(a: 1)
}

let a = f(createA: {A(a: Int)}) // Wrong
更新 好吧,我想:

f(createA: { a in A(a: a) })

这适用于Swift 2.0测试版(不知道1.2版):


f(createA:{A()})
?@TheParamagneticCroissant谢谢!如果初始值设定项有一个输入怎么办?你传递了什么到那个输入中去了?@Sen很明显,然后你把输入传递给初始值设定项?或者你是什么意思?@paramagneticscroissant我更新了这个问题
func f(createA createA: () -> A) -> A {
    return createA()
}


f(createA: A.init)