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)