1.클로져

Untitled

정의

Named Clousure , 우리가 일반적으로 알고 있는 함수.

Unnamed Closure, 익명함수, 말 그대로 함수와 동일한 기능을 하지만 함수명이 없다.

즉 클로져는 위의 두개를 포함하지만 일반적으로 익명함수를 지칭한다.

아래에서도 계속 클로져라 지칭하겠습니다.

클로져는 생성되는 시점과 실행되는 시점이 다르다.

캡쳐는 생성 될 때 일어난다.

클로져 표현식

Untitled

클로져는 클로져 헤드 와 클러져 바디로 이루어져 있는데 이를 구분 해주는 것이 바로 in 이라는 키워드.

func hello("매개변수") -> ("반환형") {
		print("hello")
		return
}
let closure = { "이름이 있었다면 hello"("매개변수") -> ("반환형") in
		print("hello")
		return
}

func add(a: Int , b: Int) -> Int {
		return a + b
}
let closure = { (a: Int, b: Int) -> Int in
		return a + b
}

위의 클로져를 경량화 하는 문법이 있는데 이건 뒤에서 다루겠습니다.

1급 객체