[swift] 고차 함수를 사용하여 배열 내에서 특정 원소를 찾는 방법은 어떻게 되나요?

Swift에서는 고차 함수를 사용하여 배열 내에서 특정 원소를 찾을 수 있습니다. 고차 함수는 배열을 순회하면서 특정 조건을 충족하는 원소를 찾는 동작을 수행합니다. 여기에는 filter, contains, first, index, index(where) 등의 함수가 포함됩니다.

  1. filter 함수를 사용하여 특정 조건을 충족하는 원소 찾기
    let numbers = [1, 2, 3, 4, 5]
    let evenNumbers = numbers.filter { $0 % 2 == 0 }
    

    위의 예제는 numbers 배열에서 짝수를 찾아 evenNumbers 배열에 저장합니다.

  2. contains 함수를 사용하여 특정 원소가 배열에 있는지 확인하기
    let fruits = ["apple", "banana", "orange"]
    let hasBanana = fruits.contains("banana")
    

    위의 예제는 fruits 배열에 “banana”가 있는지 확인합니다. 결과는 hasBanana에 저장됩니다.

  3. first 함수를 사용하여 특정 조건을 충족하는 첫 번째 원소 찾기
    let numbers = [1, 2, 3, 4, 5]
    let firstEvenNumber = numbers.first { $0 % 2 == 0 }
    

    위의 예제는 numbers 배열에서 첫 번째로 발견된 짝수를 찾아 firstEvenNumber에 저장합니다.

  4. index 함수를 사용하여 특정 원소의 인덱스 찾기
    let fruits = ["apple", "banana", "orange"]
    if let bananaIndex = fruits.index(of: "banana") {
     print("banana is at index \(bananaIndex)")
    } else {
     print("banana is not found")
    }
    

    위의 예제는 fruits 배열에서 “banana”의 인덱스를 찾아 출력합니다.

  5. index(where:) 함수를 사용하여 특정 조건을 충족하는 첫 번째 원소의 인덱스 찾기
    let numbers = [1, 2, 3, 4, 5]
    if let index = numbers.index(where: { $0 % 2 == 0 }) {
     print("first even number is at index \(index)")
    } else {
     print("no even number found")
    }
    

    위의 예제는 numbers 배열에서 첫 번째로 발견된 짝수의 인덱스를 찾아 출력합니다.

고차 함수를 사용하면 배열 내에서 원하는 원소를 간편하게 찾을 수 있습니다. 필요한 조건에 따라 적절한 함수를 선택하여 사용하면 됩니다. 출처 : Swift 공식 문서