페이지

2017년 2월 17일 금요일

Swift nested function, closure

// 1. nested function return type

func sumOrSub(enable:Bool) -> (Int,Int)->Int {
    func add(_ a: Int, _ b:Int )->Int {
        return a+b
    }

    func sub(_ a:Int , _ b:Int)->Int {
        return a - b
    }

    if(enable){
        return add
    }
    else {
        return sub
    }

}

print( sumOrSub(enable:true)(1,2))





// 2. closure

let names = ["james","charile","richard","hong","kim","lee"]
func backward(_ a:String, _ b:String)->Bool {
    return (a > b )
}
var reversed = names.sorted(by:backward)
print (reversed)

reversed = names.sorted(by: { (a:String, b:String)->Bool in return a>b })
print (reversed)

reversed = names.sorted(by: { s1,s2 in return s1>s2 })
print( reversed) 

reversed = names.sorted(by: { s1,s2 in s1>s2 })
print( reversed) 


reversed = names.sorted(by: { return $0>$1})
print( reversed)


reversed = names.sorted(by: { $0>$1})
print( reversed)

reversed = names.sorted(by: > )
print( reversed)


//trailing closure

reversed = names.sorted(){ $0>$1}
print( reversed)
reversed = names.sorted{ $0>$1}
print( reversed)
reversed = names.sorted{ ( a, b) -> Bool in return a > b }
print( reversed)

댓글 없음:

댓글 쓰기