Swift_4_闭包(Blocks)

import Foundation

println("Hello, World!")

var arr = [1,2,4,6,74,2]

func hasClosure(list:[Int], v2:Int, cb:(num:Int, v3:Int) ->Bool)  ->Bool{
    
    for item in arr{
        if(cb(num:item, v3:v2)){
            return true;
        }
    }
    return false;
}

var v2 = hasClosure(arr, 82, {
    (num:Int, v3:Int) ->Bool in
    return num >= v3;
    });
println("v2 is \(v2)")



//sort函数  会根据您提供的排序闭包将已知类型数组中的值进行排序。 一旦排序完成,函数会返回一个与原数组大小相同的新数组,该数组中包含已经正确排序的同类型元素
let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]

func backwards(s1: String, s2: String) -> Bool {
    return s1 > s2
}

var reversed = sort(names, backwards)
// reversed is equal to ["Ewa", "Daniella", "Chris", "Barry", "Alex"]
//闭包版
reversed = sort(names, { (s1: String, s2: String) -> Bool in
    return s1 > s2
    })

//单行
reversed = sort(names, { (s1: String, s2: String) -> Bool in return s1 > s2 } )

//再精简
reversed = sort(names, { s1, s2 in s1 > s2 } )

//极致精简
reversed = sort(names, { $0 > $1 } )

//终极精简
reversed = sort(names, >)

println("reversed is \(reversed)")

//闭包表达式
//{
//    (parameters) -> returnType in
//    statements
//}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值