오늘은 클로저 맛만 보고,, 명언 생성기 앱을 만들었다!
명언 생성기가 뭐지? 뭘 어떻게 만든거야? 한다면..
명언 생성기 여길 눌러주세용
이제 클로저에 대해 얘기할건데!
클로저와 함수는 기능은 완전히 동일한데, 형태만 다르다고 생각하면 될 듯 하네요?
함수는 이름이 있는 코드 묶음이고, 클로저는 이름이 없는 코드 묶음이라고 생각하면 됩니당
아참, 함수는 타입 표기법인거 .. 모르는 흑우 없제?
let functionA: (String) -> String // 1)파라미터 문자열, 2)리턴형 문자열
let functionB: (Int) -> () // 1)파라미터 정수, 2)리턴형 없음
let functionC: (String) -> Void // 1)파라미터 문자열, 2)리턴형 없음
기존 함수의 형태와 클로저의 형태를 비교해보려고 하는데!
우선 함수부터 보자
func aFunction(str: String) -> String {
return "Hello, \(str)"
}
보통 함수는 이렇게 정의했었고 ..
다음 클로저는
let _ = {(str: String) -> String in
return "Hello, \(str)"
}
어라? 뭐가 바뀐건지 한 번 같이 봐보자..
in
이 생겼네..아! 이렇게 만드는거구나!
그렇다면 .. 클로저를 변수에 담는것도 가능하나?
네 담아드리겠읍니다~
let aClosureType = { () -> () in // 변수에 담아서 호출하는 것도 가능
print("안녕")
}
//let aClosureType = { print("안녕") } // () -> ()
aClosureType() // "안녕"
---
func aFunction1(_ param: String) -> String {
return param + "!"
}
var a: (String) -> String = aFunction1
a("안녕") // "안녕!"
TIL 시리즈는 막연히 제가 배운 걸 기록하는 공간입니다.