函数的默认值作为参数

时间:2017-11-19 21:21:47

标签: swift

func myFunc(f: () -> () ) {
    f()
}

是否支持添加f: () -> () = nil之类的默认值,以便我可以在不提供myFunc()的情况下致电f

3 个答案:

答案 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()
}