Swift_4_クローズドパック(Blocks)

1305 ワード

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
//}