패스트캠퍼스) ios 개발 챌린지

[패스트캠퍼스 수강 후기] IOS개발강의 100% 환급 챌린지 20회차 미션

student513 2020. 11. 21. 23:07

closure함수는 외부의 변수를 캡쳐하여 수정이 가능하다

// 파라미터, 반환형 없이도 사용이 가능하다
let voidClosure: () -> Void = {
    print("iOS 개발자 짱, 클로져 사랑해")
}

voidClosure()



// Capturing Values
// 순수함수의 반대라고 생각하면 된다. 클로저에서 외부의 데이터를 capture하여 수정이 가능하다
var count = 0

let incrementer = {
    count += 1
}

incrementer()
incrementer()
incrementer()
incrementer()

count // 4

closure에 대한 추가 설명이다
이 중 우리가 배운 것은 Expressions다.
함수랑 똑같다.
이름이 있냐 없냐의 차이이다.
js의 프로미스, then()을 생각하면 쉽다. 함수가 클로저를 호출한다면, 자신이 실행되고 그 다음 순서로 클로저 함수가 실행되기를 원하는 것이다.

 

고계 함수라는 뜻. 함수의 인자에 함수를 받아들일 수 있다. 클로저가 클로저를 받아들일 수도 있는 것이다.

 Example 1: Cho Simple Closure

let choSimpleClosure = {

}

choSimpleClosure()



 Example 2: 코드블록을 구현한 Closure

let choSimpleClosure = {
    print("Hello, 클로져, 코로나 하이!")
}

choSimpleClosure()


 Example 3: 인풋 파라미터를 받는 Closure

let choSimpleClosure: (String) -> Void = { name in
    print("Hello, 클로져, 코로나 하이! 나의 이름은 \(name) 입니다!")
}

choSimpleClosure("코로나가 제일시러")


 Example 4: 값을 리턴하는 Closure

let choSimpleClosure: (String) -> String = { name in
    let message = "iOS 개발 만만세, \(name)님 경제적 자유를 얻으실 거에요!"
    return message
}

let result = choSimpleClosure("코로나가 제일시러")
print(result)


 Example 5: Closure를 파라미터로 받는 함수 구현

func someSimpleFunction(choSimpleClosure: () -> Void) {
    print("함수에서 호출이 되었어요")
}

someSimpleFunction(choSimpleClosure: {
    print("헬로 코로나 from closure")
})


func someSimpleFunction(choSimpleClosure: () -> Void) {
    print("함수에서 호출이 되었어요")
    choSimpleClosure()
}

someSimpleFunction(choSimpleClosure: {
    print("헬로 코로나 from closure")
})

 Example 6: Trailing Closure

func someSimpleFunction(message: String, choSimpleClosure: () -> Void) {
    print("함수에서 호출이 되었어요, 메세지는 \(message)")
    choSimpleClosure()
}

someSimpleFunction(message: "로나로나 메로나, 코로나 극혐", choSimpleClosure: {
    print("헬로 코로나 from closure")
})

someSimpleFunction(message: "로나로나 메로나, 코로나 극혐") {
    print("헬로 코로나 from closure")
}

올인원 패키지 : iOS 앱 개발👉https://bit.ly/2FjWizq