Swift(10) Closures

개발렬·2023년 7월 14일
0

Swift

목록 보기
10/23
post-thumbnail

Closures

클로저는 다른 함수나 메서드에 전달되거나 변수로 저장할 수 있는 코드 블록입니다.
비교적 짧고 독립적인 코드 조각입니다. 이름이 없는 함수라고 할 수 있습니다.
이는 일반적으로 해당 코드 블록에서 사용되는 변수나 상수의 값을 캡처(capture)하고, 나중에 호출될 때 해당 값을 사용할 수 있게 합니다.

{ (매개변수) -> 반환 타입 in
    // 클로저의 실행 코드
}

Closures 정의하는 방법

// 클로저를 변수에 할당
let sayHello = {
    print("안녕하세요!")
}

// 클로저 실행
sayHello()

// 클로저를 파라미터로 받는 함수
func performOperation(_ operation: () -> Void) {
    print("연산을 수행합니다.")
    operation()
}

// 클로저를 함수 호출 시 전달
performOperation({
    print("클로저를 실행합니다.")
})

// 클로저 축약 문법 사용
performOperation {
    print("축약 문법을 사용한 클로저 실행")
}

문법 최적화

products.filter({ (name: String) -> Bool in
	return name.contains("Pro")
})
  1. 파라미터 타입와 리턴 형식 생략합니다.
products.filter({ (name) in
	return name.contains("Pro")
})
  1. 파라미터 이름과 "in" 생략하고 shorthand argument 으로 대체합니다.
products.filter({ 
	return $0.contains("Pro")
})
  1. 단일 리턴문이라면 생략합니다. Implicit Returns
products.filter({ 
	$0.contains("Pro")
})
  1. 클로저가 마지막 파라미터라면 trailing closures로 작성합니다.
products.filter(){
	$0.contains("Pro")
}
  1. 괄호안에 파라미터 레이블 생략 후 괄호 삭제합니다.
products.filter{
	$0.contains("Pro")
}
profile
Flutter, iOS...나는 모바일 앱 개발자

0개의 댓글