Collection Type을 돌릴 때 사용하는 for in
과 고차함수 .forEach
에 대해 알아보자.
for-in ❓ forEach
for - in
You use the for-in loop to iterate over a sequence, such as items in an array, ranges of numbers, or characters in a string.
스위프트 문서에서는 for - in loop를 사용해서 배열의 아이템, 숫자 범위, 문자열에서의 문자와 같은 시퀀스를 반복할 수 있다고 기술되어 있다.
forEach(_:)
Calls the given closure on each element in the sequence in the same order as a for-in loop.
for in loop와 동일한 순서로 시퀀스의 각 요소에 주어진 클로저를 호출한다고 기술되어 있다.
각각의 예제
예제 1 - 각각의 요소 출력
|
|
예제 2 - 인덱스와 값 동시 출력
for-in
loop 사용
|
|
3가지 방법 모두 같은 결과를 출력한다.
forEach
사용
|
|
for-in과 마찬가지로 enumerated
, indices
을 사용하면 된다.
❗️ for-in 의 경우 반복횟수를 지정하여 사용할 수 있었지만, forEach의 경우 각 요소에 주어진 클로저를 호출하는 것이기 때문에 따로 반복횟수를 지정할 수 없고 요소의 개수만큼만 반복할 수 있다.
예제 3 - break / continue 사용
for-in
loop 사용
|
|
forEach
사용
break와 continue는 loop와 switch안에서만 사용 가능하다는 오류메세지가 보여짐
forEach에서는 사용 불가
예제 4 - return
for-in
loop 사용
|
|
반복문을 돌다가 return
을 만나면 함수가 종료됨.
forEach
사용
|
|
forEach는 클로저를 요소 갯수만큼 실행하기 때문에 return을 만나도 전달했던 클로저를 종료하고 다음 요소의 클로저 호출에는 영향을 주지 않는다.
|
|
Reference
https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html
https://developer.apple.com/documentation/swift/array/foreach(_:)
https://babbab2.tistory.com/95?category=828998
https://velog.io/@un1945/Swift-for-in-forEach-%EC%B0%A8%EC%9D%B4%EC%A0%90