Metoda WithIndex
Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 75 z 93.
Podczas iterowania po liście często musisz znać nie tylko element, ale także jego pozycję. Metoda withIndex() daje ci oba te elementy naraz.
Wywołaj withIndex() na dowolnej liście, aby uzyskać pary indeksu i wartości:
val colors = listOf("Red", "Green", "Blue")
for ((index, color) in colors.withIndex()) {
println("$index: $color")
}
// Wynik:
// 0: Red
// 1: Green
// 2: BlueZwróć uwagę na składnię w nawiasach: (index, color). Nazywa się to destrukturyzacją, która rozpakowuje indeks i wartość do osobnych zmiennych. Możesz nazwać te zmienne tak, jak będzie to miało sens w Twoim kodzie.
To podejście jest czytelniejsze niż ręczne śledzenie indeksu za pomocą zmiennej licznika. Jest szczególnie przydatne, gdy trzeba wyświetlić listy numerowane lub wykonać różne działania w zależności od pozycji:
val tasks = listOf("Wake up", "Exercise", "Eat breakfast")
for ((i, task) in tasks.withIndex()) {
println("Step ${i + 1}: $task")
}
// Wynik:
// Step 1: Wake up
// Step 2: Exercise
// Step 3: Eat breakfastWyzwanie
ŚredniOtrzymasz listę imion i nazwisk uczniów jako dane wejściowe. Najpierw wczytaj liczbę uczniów, a następnie wczytaj każde imię i nazwisko.
Używając withIndex(), wypisz każdego ucznia wraz z jego numerem w rankingu (zaczynając od 1, a nie od 0).
Format danych wejściowych:
- Pierwszy wiersz: liczba całkowita
nreprezentująca liczbę uczniów - Kolejne
nwierszy: imiona i nazwiska uczniów (ciągi znaków)
Format danych wyjściowych:
Wypisz każdego ucznia w osobnym wierszu w formacie:
Rank 1: Alice
Rank 2: Bob
Rank 3: CharliePamiętaj, że withIndex() zwraca indeksy zaczynające się od 0, więc musisz je dostosować, aby numery w rankingu zaczynały się od 1.
Spróbuj swoich sił
fun main() {
// Wczytaj liczbę uczniów
val n = readLine()!!.toInt()
// Wczytaj imiona uczniów do listy
val students = mutableListOf<String>()
for (i in 1..n) {
students.add(readLine()!!)
}
// TODO: Napisz swój kod poniżej
// Użyj withIndex(), aby przejść przez students i wypisać ich miejsca w rankingu
// Pamiętaj: withIndex() zwraca indeksy zaczynające się od 0, ale miejsca w rankingu powinny zaczynać się od 1
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory – część 1
Operatory arytmetyczneOperator moduloPrzypisanie z operatoremOperatory porównaniaPowtórka – proste działania matematyczne7Podstawowe wejście/wyjście
Funkcja printlnSzablony ciągów znakówWczytywanie danych przez ReadLineKonwersja typówPowtórka — lata do emeryturyPowtórka — prawda czy fałsz10Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneArgumenty nazwaneWartości domyślneFunkcje z pojedynczym wyrażeniemPowtórka – funkcja SigmaPowtórka – funkcja walidująca13Iterowanie po sekwencjach
Iterowanie po elementachMetoda WithIndexIterowanie po ciągach znaków P1Iterowanie po ciągach znaków P2Podsumowanie — indeksowane litery2Zmienne
Val a VarWnioskowanie o typieLiczbyŁańcuch znakówWartość logicznaKonwencje nazewnictwaPowtórzenie – inicjalizacja zmiennych5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Operatory logiczne, część 3Operator trójargumentowy z wyrażeniem ifPowtórka — prosta logika8Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych11FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz3Obsługa wartości null
Czym jest bezpieczeństwo nullTypy dopuszczające nullOperator bezpiecznego wywołaniaOperator ElvisPodstawy wyzwania z funkcjamiAsercja wartości niebędącej nullPodsumowanie — bezpieczny dostęp6Podejmowanie decyzji
Instrukcja ifIf - elseIf jako wyrażenieWyrażenie whenWhen z zakresamiPowtórka — prosty kalkulator9Pętle
Pętla forPętla whilePętla do-whileBreakContinueZakresy w pętlachPętla zagnieżdżonaPowtórka – silniaPowtórka – dynamiczne wprowadzanie danychPoćwicz samodzielnie: Edytor online Kotlin