본문 바로가기
iOS/애플 개발자 공식 문서

[Swift] enumerated()로 인덱스와 요소를 모두 반환하기

by Dev.Andy 2023. 3. 28.

Swift의 문자열이나 배열에서 어떻게 하면 인덱스와 요소를 하나로 묶은 채 모두 출력할 수 있을까? 바로 enumerated() 메서드를 이용하면 된다. enumerate는 '열거하다'라는 뜻의 영단어이다.

 

📌 공식 문서 링크

 

📌 요약

Returns a sequence of pairs (n, x), where n represents a consecutive integer starting at zero and x represents an element of the sequence.
쌍으로 묶은 (n, x) 과정을 반환한다. n은 0부터 시작하는 연속적인 정수를 의미하고 x는 시퀀스의 요소를 의미한다.

 

📌 선언(Declaration)

리터럴은 enumerated()이다.

func enumerated() -> EnumeratedSequence<Self>

enumerated() 메서드를 쓰고, EnumeratedSequence를 자료형으로 반환한다. 여기서 EnumeratedSequence는 시퀀스나 콜렉션 타입(문자열, 배열, 집합, 딕셔너리 등등)의 요소를 열거한 형태를 말한다.

 

📌 반환값(Return Value)

A sequence of pairs enumerating the sequence.
(인덱스와 요소의) 시퀀스를 열거한 쌍들로 이루어진 하나의 (전체적인) 시퀀스.

영단어 sequece가 2번이나 들어가서 그런지 설명이 어렵다. 쉽게 말하여 인덱스와 요소를 한 쌍씩 묶는 것(sequece 1)의 반복(sequece 2)을 반환하는 걸 뜻한다.

 

📌 논고(Discussion)

(1) String에서의 enumerated()

문자열에 enumerated()를 사용하여 출력해 보자.

for (index, char) in "Andy Archive".enumerated() {
    print("\(index): \(char)")
}
0: A
1: n
2: d
3: y
4:  
5: A
6: r
7: c
8: h
9: i
10: v
11: e

인덱스와 요소를 한 쌍으로 하여 차례대로 출력한다.

 

📌 복잡도(Complexity)

$O(1)$

댓글