Swift의 문자열이나 배열에서 어떻게 하면 인덱스와 요소를 하나로 묶은 채 모두 출력할 수 있을까? 바로 enumerated() 메서드를 이용하면 된다. enumerate는 '열거하다'라는 뜻의 영단어이다.
📌 공식 문서 링크
- enumerated() | Apple Developer Documentation
- Collection Types | Documentation
- 콜렉션 타입(Collection Types) | Swift
📌 요약
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)$
'iOS > 애플 개발자 공식 문서' 카테고리의 다른 글
[Swift] print 함수로 주어진 여러 아이템을 String 타입으로 표준 출력하기 (0) | 2023.05.03 |
---|---|
[Swift] "~= " 연산자 함수로 패턴 매칭 확인하기 (0) | 2023.04.26 |
[Swift] reversed로 컬렉션 타입의 순서를 뒤집는 뷰 반환하기 (0) | 2023.04.07 |
[Swift] stride()로 숫자를 단계적으로 다루기 (0) | 2023.03.18 |
[Swift] 백준에서 readLine() 메서드로 입력 받기 (0) | 2023.03.16 |
댓글