Menu
Coddy logo textTech

Metoda enumerate

Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 70 z 86.

Czasami podczas iterowania po tablicy musisz znać nie tylko element, ale także jego pozycję. Możesz ręcznie śledzić indeks za pomocą zmiennej licznika, ale Swift oferuje prostsze rozwiązanie: metodę enumerated().

Gdy wywołasz enumerated() na tablicy, zwróci ona sekwencję krotek, z których każda zawiera indeks i element:

let colors = ["Red", "Green", "Blue"]

for (index, color) in colors.enumerated() {
    print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: Blue

Zwróć uwagę, jak bezpośrednio rozpakowujemy każdą krotkę w pętli, używając (index, color). Dzięki temu mamy dostęp do obu wartości bez dodatkowego kodu.

Jest to szczególnie przydatne, gdy musisz wyświetlać listy numerowane lub wykonywać operacje zależne od pozycji elementu:

let tasks = ["Wake up", "Exercise", "Eat breakfast"]

for (index, task) in tasks.enumerated() {
    print("Task \(index + 1): \(task)")
}
// Zadanie 1: Obudź się
// Zadanie 2: Ćwicz
// Zadanie 3: Zjedz śniadanie

Metoda enumerated() sprawia, że kod jest przejrzysty i czytelny, w przeciwieństwie do ręcznego zarządzania osobną zmienną licznika.

challenge icon

Wyzwanie

Łatwy
Napisz funkcję formatWithPositions, która przyjmuje items i zwraca sformatowany ciąg znaków, pokazujący każdy element wraz z jego numerem pozycji.

Użyj metody enumerated(), aby iterować po tablicy i utworzyć ciąg znaków, w którym każdy element jest poprzedzony numerem pozycji liczonej od 1.

Logika:

  1. Iteruj po tablicy, używając enumerated()
  2. Dla każdego elementu utwórz ciąg znaków w formacie "position. item" (stosując numerację od 1)
  3. Połącz wszystkie sformatowane ciągi znakiem nowej linii (\n)

Parametry:

  • items ([String]): Tablica ciągów znaków do sformatowania

Zwraca: Pojedynczy ciąg znaków, w którym każdy element znajduje się w osobnym wierszu i jest poprzedzony swoim numerem pozycji (String). Format: "1. item1\n2. item2\n3. item3"

Przykład: Jeśli items ma wartość ["Apple", "Banana", "Cherry"], funkcja powinna zwrócić:

"1. Apple\n2. Banana\n3. Cherry"

Uwaga: Jeśli tablica jest pusta, zwróć pusty ciąg znaków "".

Spróbuj swoich sił

func formatWithPositions(items: [String]) -> String {
    // Napisz kod tutaj
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Swift