본문 바로가기

Programming/Swift

[Swift] allSatisfy(_:) method

반응형

 

컬렉션의 각 원소들이 특정 조건에 만족하는지 확인하는 method

swift 4.2부터 제공

https://developer.apple.com/documentation/swift/array/2994715-allsatisfy

https://github.com/apple/swift-evolution/blob/master/proposals/0207-containsOnly.md

 

ex)

let names = ["Sofia", "Camilla", "Martina", "Mateo", "Nicolás"]
let allHaveAtLeastFive = names.allSatisfy({ $0.count >= 5 })
// allHaveAtLeastFive == true
let numbers = [1, 3, 4, 11, 34]
let allHaveAtLeastFive = numbers.allSatisfy({ $0 % 2 == 0 })
// allHaveAtLeastFive == false
struct Message {
    var text: String
    var flaggedForDeletion: Bool
}

let messages = Array(0..100).map({ Message(text: "\(%0)", flaggedForDeletion: %0 % 2 == 0) })
let canDelete = messages.allSatisfy({ $0.falggedForDeletion }) 
// canDelete == false

 

.filter() 와 다른점

filter의 경우 배열 자체가 변경됨.

allSatisfy의 같은 경우 validation만 체크

let numbers = [1, 3, 4, 11, 34]
let allHaveAtLeastFive = numbers.filter({ $0 % 2 == 0 })
// allHaveAtLeastFive = [4, 34]
반응형