iOS 프로그래밍 (11)

김제형·2024년 12월 5일

클로저

클로저를 만드는 방법

  1. 함수선언문과 함수명을 지운다
(x: Int, y: Int) -> Int {
return(x+y)
}
  1. 전체를 중괄호로 묶고 클로저 내부과 반환 값을 연결해주기 위해 in으로 연결한다.
{(x: Int, y: Int) -> Int in
    return x+y
}
  1. 클로저를 호출할 땐 argument 인자를 사용하지 않고 호출해야 한다.
let add1 = {(x: Int, y: Int) -> Int in
    return x+y
}

print(add1(x:10, y:20)) // Error
print(add1(10, 20))  // o

후행 클로저 ( Trailing Closure )

  • 클로저가 함수의 마지막 argument라면 마지막 매개변수명을 생략한 후 함수 소괄호 외부에 클로저를 작성
trailCl(cl : { /*내용*/]) // 후행 클로저 사용 전
// 수정
trailCl(){ //내용 ]) // 사용 후
  • 일반형식의 클로저와 후행 클로저 스타일의 코드 비교
print(math(x: 10, y: 6, cal: {(a: Int, b: Int) -> Int in
    return a + b
}))
---------------------------------------------------------
print(math(x: 70, y: 20){
    (a: Int, b: Int) -> Int in return a + b})
  • 이 두 코드는 완벽하게 같은 기능을 구현하는 코드이다.
    후행 클로저를 사용하게 되면 코드의 가독성이 높아지게 된다.

매개변수 명을 제거하지 않았을 때의 에러

알아둬야 할 사항

= nil / 디폴트 인자

profile
개발자 지망생

0개의 댓글