032_for-in, foreach 알아보기

2022. 8. 17. 23:23SeSAC/수업정리

▶for-in은 반복문이다. 아래와 같이 작동한다.

let nums: [Int] = [1, 2, 3, 4]
 
for num in nums {
    print(num)        // 1 2 3 4
}

 

▶foreach는 for-in문처럼 순차적으로 주어진 클로저를 호출하는 것이다.(반복실행하려는 코드를 파라미터로 받고 저장된 요소는 클로저 상수로 전달된다. 아래 내용에서는 $0이라는 상수에 저장.) 

let nums: [Int] = [1, 2, 3, 4]
 
nums.forEach {
    print($0)       // 1 2 3 4
}

 

▶for-in은 함수안에서 return을 만나면 함수 자체가 종료한다. 따라서 아래 출력값은 1이다.(1을 출력하고 2부터는 반복 안 함)

func printForIn() {
    let nums = [1, 2, 3]
    
    for num in nums {
        print(num)
        return
    }
}

 

▶foreach는 return을 만난다는 건 전달한 클로저를 종료한다는 의미이다. 따라서 아래 출력값은 1, 2, 3이다. (1 전달이 끝나면 1 종료하고 2 전달함. 2전달 끝나면 2전달 종료하고 3전달 하는 식)

func printForEach() {
    let nums = [1, 2, 3]
    
    nums.forEach {
        print($0)
        return
    }
}

 

▶for-in은 continue, break 사용할 수 있고 foreach는 continue, break 사용할 수 없다.

for num in nums {
    break
    continue
}
 
nums.forEach {
    break       // error! 
    continue    // error! 
}

 

 



 

References

https://babbab2.tistory.com/95

https://developer.apple.com/documentation/realitykit/entity/childcollection/foreach(_:)/