Swift랑 친해지기/Swift문법정리

[Swift] Closure (클로져)

데브킹덕 2022. 8. 16. 00:09

클로져

- 짧고 독립적인 코드 조각

 

 

클로져 종류

Named Closures - Global Function,Nested Function

Unnamed Closures - Anonymous Function

 

 

보통 클로져라 하면 Unnamed Closures - Anonymous Function를 뜻함 

함수와 클로져는 서로 자료형이 같아서 서로 호환이 됨

Global Scope에서는 단독으로 사용 불가 

 

 

클로져도 First Class Citizen임

1. 변수, 상수에 저장가능 

2. 파라미터로 전달할 수 있음

3. 함수와 메소드에서 리턴 가능

 

 

//Closures


		{(parameters) -> ReturnType in 
        	statements
        }
        
// in 을 기준으로 앞은 closure head 뒤는 closure body라고 부름



		//파라미터와 리턴 타입을 생략할 수 있음
		{statements}

 

 

 

파라미터와 리턴형이 생략된 클로져 예시 

 

let sayHello = {print("안녕하세요")}

 

이름이 없는 함수  Unnamed Closure에  sayHello라는 이름을 붙임 

sayHello를 실행해보면 안녕하세요가 출력됨

 

 

 

 

파라미터와 리턴타입을 사용할 경우

클로져에서는 Argument Label을 사용하지 않음