반응형

[Swift 5/부스트 코스]  iOS 프로그래밍을 위한 스위프트 기초 - 클로저 기본(1-17) 생각해보기

 

안녕하세요. 개발하는 정주입니다.

 

오늘은 부스트 코스 iOS 프로그래밍을 위한 스위프트 기초 - 클로저 기본(1-17) 생각해보기에 대해 포스팅하려고 합니다.

http://www.boostcourse.org/mo122/lecture/11296

 

iOS 프로그래밍을 위한 스위프트 기초

부스트코스 무료 강의

www.boostcourse.org

 


생각해보기

일급 객체의 주요 특징은 객체를 인자 값, 반환 값으로 사용할 수 있어야 한다는 것입니다.

따라서 클로저가 일급 객체라는 것은 클로저를 인자값, 반환 값으로 사용할 수 있다는 것인데요.

즉 이번 생각해보기는 클로저/함수를 변수에 담거나 인자값, 반환 값으로 사용하는데 무슨 의미가 있는지가 핵심인 것 같습니다. 

 

이중에서도 제가 생각하는 가장 큰 이점은 인자값으로 사용할 수 있다는 점 같습니다.

부스트 코스의 예시를 살펴보면 아래와 같습니다.


      
func calculate(a: Int, b: Int, method: (Int, Int) -> Int) -> Int {
return method(a, b)
}

함수 인자로 클로저를 받는 경우인데요. calculate 하나의 함수로 a, b를 이용한 계산 값을 return 할 수 있습니다.

 

클로저를 최대한 축약한다면 아래처럼 코드가 작성될 수 있겠습니다.


      
result = calculate(a: 10, b: 10) { $0 + $1 }

 

아직까진 이론뿐이지만 코드가 짧아지고 함수 하나하나 이름을 정하지 않아도 된다는 이점이 있다고 생각합니다.

실제 개발에 적용하면서 다른 이점이 있는지 더 생각해 봐야겠습니다.

 


마무리 잡담

감사합니다!

 


아직은 초보 개발자입니다.

더 효율적인 코드 훈수 환영합니다!

공감 댓글 부탁드립니다.

 

반응형
유정주