클로저 표현식

func sub(x: Int, y: Int) -> Int { return(x-y)
}
print(sub(x:20, y:15))
let sub1 = { (x: Int, y: Int) -> Int in
return(x-y)
}
print(sub1(10, 20)) //OK
print(type(of:sub1)) //과제
// 5
// -10
// (Int, Int) -> Int

후행 클로저(trailing closure)

func someFun(cl: () -> Void) {
}
// trailing closure를 사용 안하면
someFun(cl: {
//closure’s body
})
// trailing closure 사용
someFun() {
//trailing closure's body goes here
}

클로저의 축약 표현들 : 과제(유사 예제 만들어 보기)

let name = {(last: String, first: String) -> String in
return last + first
}
var result = name("Yoo"," JaeWoo")
print(result)
let age = {(ten: String, First: String) -> String in
return ten + First
}
result = age("2","4")
print(result)
let info = {(x: String, y:String, cal: (String, String) -> String) -> String in
return cal(x,y)
}
result = info("YOO"," JAEWOO", name)
print(result)
result = info("2","4 years", age)
print(result)
result = info("yoo", " jaewoo"){(val1: String, va12: String) in //-> String 생략
return val1 + va12
}
print(result)
// Yoo JaeWoo
// 24
// YOO JAEWOO
// 24 years
// yoo jaewoo

profile
끝없이 탐구하는 iOS 개발자 유재우입니다!

0개의 댓글