func myFunc(f: () -> () ) {
f()
}
是否支持添加f: () -> () = nil
之类的默认值,以便我可以在不提供myFunc()
的情况下致电f
?
答案 0 :(得分:1)
是的,您可以将闭包设为可选,然后为其提供nil
默认值。
确保安全地解包可选的输入参数(例如,使用可选的绑定)。
func myFunc(f: (() -> ())? = nil ) {
if let f = f {
f()
}
}
或者,如果您不希望nil
输入参数的行为与非零输入参数不同,则可以使用可选链接。
func myFunc(f: (() -> ())? = nil ) {
f?()
}
答案 1 :(得分:0)
当然,但必须是可选的
func myFunc(f: (() -> ())? = nil ) {
f?()
}
答案 2 :(得分:0)
作为使闭包可选的替代方法,您也可以使用空闭包{}
作为默认值:
func myFunc(f: (() -> ()) = {}) {
f()
}