[swift] 클로저의 특정 인수 생략하기
클로저의 특정 인수를 생략하기 위해서는 먼저 클로저의 매개변수 목록에서 생략하고자 하는 인수를 밑줄(_
)로 표시해야 합니다. 밑줄은 해당 인수를 생략하겠다는 의미이며, 클로저를 호출할 때 해당 인수를 전달하지 않아도 됩니다. 예를 들어, 다음과 같은 클로저를 생각해봅시다.
let numbers = [1, 2, 3, 4, 5]
let mappedNumbers = numbers.map({ (number: Int) -> Int in
return number * 2
})
위의 코드에서 매핑 클로저는 인수로 number
를 받고, number
를 2배한 값을 반환합니다. 그러나 이 경우에는 클로저가 매개변수로 number
를 받아야 하는데, 실제로는 클로저 안에서 number
를 사용하지 않습니다. 이런 경우에는 매개변수 number
를 생략할 수 있습니다.
let numbers = [1, 2, 3, 4, 5]
let mappedNumbers = numbers.map({ _ -> Int in
return number * 2
})
매개변수 number
가 밑줄로 대체되었습니다. 이제 클로저를 호출할 때 매개변수를 제공하지 않아도 됩니다.
클로저의 인수를 생략할 때 주의할 점은 클로저의 매개변수 수와 유형이 일치해야 한다는 것입니다. 클로저의 매개변수 수와 타입이 일치하는지 확인하고, 필요에 따라 매개변수를 생략해보세요.