Swift 尾随闭包(Trailing closure syntax) 的使用

func seporateString(string: String, handler: (str1: String, str2: String) -> Void) -> Bool {

    if string.startIndex < string.endIndex.advancedBy(-2) {

        let str1 = string.substringToIndex(string.endIndex.advancedBy(-2))

        let str2 = string.substringFromIndex(string.endIndex.advancedBy(-2))

        handler(str1: str1, str2: str2)

        return true

    }

    return false

}


// 普通调用

seporateString("seporator", handler: { (str1, str2) ->Void in

    print(str1)

    print(str2)

})


// 尾随闭包(带有具体参数)

seporateString("seporator") { (str1, str2) ->Void in

    print(str1)

    print(str2)

}


// 尾随闭包(使用$0,$1...)

seporateString("seporator") {

    print($0)

    print($1)

}

  尾随闭包是普通闭包的精简模式,但是注意不要在非最后一个参数时使用!

  上述代码在playground的运行结果如下:


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值