Swift For Loops
2023년 8월 11일 수정
≡ 목차 (Table of Contents)
이 글은 Swift의 for 문과 Collection의 여러 보조 기능을 이용해 Collection의 각 아이템을 열거(iteration, 반복, 나열, 순환)하는 여러 방법을 정리한다.
for
아래는 가장 기본적이면서도 자주 사용하게 될 순환 방법이다.
for item in items { ... }
indices
indices
는 Collection의 인덱스 리스트를 생성해주는 기능이다. 이를 이용하면 인덱스를 순서대로 얻을 수 있다.
for index in items.indices { ... }
enumerated
enumerated
는 Collection의 각 아이템과 인덱스를 조합한 튜플 리스트를 생성해주는 기능이다.
for (index, item) in items.enumerated { ... }
zip
zip
은 두 컬렉션을 튜플로 조합해주는 기능이다. 이를 이용해 다양한 루프를 구현할 수 있다. 예를 들어 위의 enumerated
를 아래와 같이 다르게 구현해 볼 수도 있다.
for (index, item) in zip(items.indices, items) { ... }
forEach
forEach
는 for-in
루프를 간결한 문법으로 대체할 수 있게 해준다.
items.forEach { item in ... }
forEach
는 코드 표현 상의 잇점만 있을 뿐 성능은 for
를 쓰는 것과 큰 차이가 없다. 어차피 내부적으로 for-in
루틴을 쓰는 것으로 알려져있다.
ForEach
forEach
와는 다르게 첫 문자가 대문자인 ForEach
는 SwiftUI에서 루프로 뷰를 생성하는 용도로 사용된다.
VStack { ForEach(items) { item in Text(item.title) } }