enumerate 메서드
Coddy Swift 여정의 기초 섹션에 포함된 레슨 — 86개 중 70번째.
때때로 배열을 반복할 때, 요소뿐만 아니라 그 위치도 알아야 할 필요가 있습니다. 카운터 변수를 사용하여 수동으로 인덱스를 추적할 수도 있지만, Swift는 더 깔끔한 해결책인 enumerated() 메서드를 제공합니다.
배열에서 enumerated()를 호출하면, 각 튜플이 인덱스와 요소를 포함하는 튜플 시퀀스를 반환합니다:
let colors = ["Red", "Green", "Blue"]
for (index, color) in colors.enumerated() {
print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: Blue(index, color)를 사용하여 루프 내에서 각 튜플을 직접 분해하는 방식에 주목하세요. 이를 통해 추가적인 코드 없이 두 값 모두에 접근할 수 있습니다.
이것은 번호가 매겨진 목록을 표시하거나 요소의 위치에 따라 달라지는 작업을 수행해야 할 때 특히 유용합니다:
let tasks = ["Wake up", "Exercise", "Eat breakfast"]
for (index, task) in tasks.enumerated() {
print("Task \(index + 1): \(task)")
}
// 작업 1: Wake up
// 작업 2: Exercise
// 작업 3: Eat breakfastenumerated() 메서드는 별도의 카운터 변수를 수동으로 관리하는 것과 비교하여 코드를 깔끔하고 가독성 있게 유지해 줍니다.
챌린지
쉬움items를 매개변수로 받아 각 항목과 해당 위치 번호를 보여주는 형식화된 문자열을 반환하는 formatWithPositions 함수를 작성하세요.
enumerated() 메서드를 사용하여 배열을 반복하고, 각 항목 앞에 1부터 시작하는 위치 번호가 붙은 문자열을 생성하세요.
로직:
enumerated()를 사용하여 배열을 반복합니다.- 각 요소에 대해
"position. item"형식(1부터 시작하는 번호 사용)의 문자열을 생성합니다. - 형식화된 모든 문자열을 줄바꿈 문자(
\n)로 연결합니다.
매개변수:
items([String]): 형식화할 문자열 배열
반환값: 각 항목이 고유한 줄에 위치하고 위치 번호가 접두사로 붙은 단일 문자열(String)입니다. 형식: "1. item1\n2. item2\n3. item3"
예시: items가 ["Apple", "Banana", "Cherry"]인 경우, 함수는 다음과 같이 반환해야 합니다:
"1. Apple\n2. Banana\n3. Cherry"참고: 배열이 비어 있으면 빈 문자열 ""을 반환하세요.
치트 시트
enumerated() 메서드는 배열의 인덱스와 요소를 모두 포함하는 튜플 시퀀스를 반환합니다:
let colors = ["Red", "Green", "Blue"]
for (index, color) in colors.enumerated() {
print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: Blue각 튜플은 (index, element) 구문을 사용하여 루프에서 직접 분해되어, 위치와 값 모두에 접근할 수 있게 해줍니다.
이는 0부터 시작하는 인덱스에 1을 더하여 번호가 매겨진 목록을 만드는 데 유용합니다:
let tasks = ["Wake up", "Exercise", "Eat breakfast"]
for (index, task) in tasks.enumerated() {
print("Task \(index + 1): \(task)")
}
// Task 1: Wake up
// Task 2: Exercise
// Task 3: Eat breakfast직접 해보기
func formatWithPositions(items: [String]) -> String {
// 여기에 코드를 작성하세요
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.