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
숫자뿐만 아니라, 이러한 방식으로 사용 가능하다.