Menu
Coddy logo textTech

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 breakfast

enumerated() 메서드는 별도의 카운터 변수를 수동으로 관리하는 것과 비교하여 코드를 깔끔하고 가독성 있게 유지해 줍니다.

challenge icon

챌린지

쉬움

items를 매개변수로 받아 각 항목과 해당 위치 번호를 보여주는 형식화된 문자열을 반환하는 formatWithPositions 함수를 작성하세요.

enumerated() 메서드를 사용하여 배열을 반복하고, 각 항목 앞에 1부터 시작하는 위치 번호가 붙은 문자열을 생성하세요.

로직:

  1. enumerated()를 사용하여 배열을 반복합니다.
  2. 각 요소에 대해 "position. item" 형식(1부터 시작하는 번호 사용)의 문자열을 생성합니다.
  3. 형식화된 모든 문자열을 줄바꿈 문자(\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 {
    // 여기에 코드를 작성하세요
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨