본문 바로가기

카테고리 없음

내가 몰라서 쓰는 스위프트(24) allSatisfy

allSatisfy는 컬렉션의 모든 요소가 주어진 조건을 만족하는지 여부를 확인하는 고차 함수이다. 이 함수는 컬렉션의 각 요소를 조건에 맞게 평가하며, 모든 요소가 조건을 만족하면 true를 반환하고, 그렇지 않으면 false를 반환한다.

공식 문서에서는 다음과 같이 설명하고 있다:

Returns a Boolean value indicating whether every element of a sequence satisfies a given predicate.

 

let numbers = [2, 4, 6, 8, 10]
let allEven = numbers.allSatisfy { $0 % 2 == 0 }
print(allEven) // true

let mixedNumbers = [2, 3, 6, 8, 10]
let allEvenInMixed = mixedNumbers.allSatisfy { $0 % 2 == 0 }
print(allEvenInMixed) // false

 

위 코드에서, numbers 배열은 모두 짝수이기 때문에 allEven은 true 값을 반환한다. 반면 mixedNumbers 배열은 홀수가 포함되어 있어 allEvenInMixed는 false를 반환한다.

let emails = ["john@example.com", "alice@sample.com", "mike@test.org"]

let allContainAtSymbol = emails.allSatisfy { email in
    email.contains("@")
}

print(allContainAtSymbol) // true

 

숫자뿐만 아니라, 이러한 방식으로 사용 가능하다.