美文网首页
How Do I Declare a Closure in Sw

How Do I Declare a Closure in Sw

作者: _清欢有味_ | 来源:发表于2016-07-20 12:27 被阅读0次

    本文转自fuckingclosuresyntax.com


    As a variable:

    var closureName: (ParameterTypes) -> (ReturnType)
    

    As an optional variable:

    var closureName: ((ParameterTypes) -> (ReturnType))?
    

    As a constant:

    let closureName: ClosureType = { ... }
    

    As an argument to a function call:

    func({(ParameterTypes) -> (ReturnType) in statements})
    

    As a function parameter:

    array.sort({ (item1: Int, item2: Int) -> Bool in return item1 < item2 })
    

    As a function parameter with implied types:

    array.sort({ (item1, item2) -> Bool in return item1 < item2 })
    

    As a function parameter with implied return type:

    array.sort({ (item1, item2) in return item1 < item2 })
    

    As the last function parameter:

    array.sort { (item1, item2) in return item1 < item2 }
    

    As the last parameter, using shorthand argument names:

    array.sort { return $0 < $1 }
    

    As the last parameter, with an implied return value:

    array.sort { $0 < $1 }
    

    As the last parameter, as a reference to an existing function:

    array.sort(<)
    

    As a function parameter with explicit capture semantics:

    array.sort({ [unowned self] (item1: Int, item2: Int) -> Bool in return item1 < item2 })
    

    As a function parameter with explicit capture semantics and inferred parameters / return type:

    array.sort({ [unowned self] in return item1 < item2 })
    

    相关文章

      网友评论

          本文标题:How Do I Declare a Closure in Sw

          本文链接:https://www.haomeiwen.com/subject/exyvjttx.html