Argumenty nazwane
Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 58 z 93.
Wywołując funkcję z wieloma parametrami, zwykle przekazujesz argumenty dokładnie w kolejności, w jakiej zostały zdefiniowane. Kotlin oferuje jednak bardziej przejrzystą alternatywę: argumenty nazwane.
W przypadku argumentów nazwanych określasz, do którego parametru należy każda wartość, używając nazwy parametru, po której następuje =:
fun createProfile(name: String, age: Int, city: String) {
println("$name, $age, from $city")
}
fun main() {
createProfile(name = "Alice", age = 25, city = "Paris")
}
// Wynik: Alice, 25, from ParisDzięki temu Twój kod jest bardziej czytelny, zwłaszcza gdy funkcja ma kilka parametrów tego samego typu. Porównaj te dwa wywołania:
// Bez argumentów nazwanych – co oznaczają te liczby?
calculateArea(10, 5, 3)
// Z argumentami nazwanymi – o wiele jaśniej!
calculateArea(length = 10, width = 5, height = 3)Argumenty nazwane pozwalają też przekazywać wartości w dowolnej, preferowanej przez ciebie kolejności:
fun greet(firstName: String, lastName: String) {
println("Hello, $firstName $lastName!")
}
fun main() {
greet(lastName = "Smith", firstName = "John")
}
// Wynik: Hello, John Smith!Możesz łączyć argumenty pozycyjne i nazwane, ale gdy użyjesz argumentu nazwanego, wszystkie kolejne argumenty również powinny być nazwane, aby uniknąć nieporozumień.
Wyzwanie
ŚredniMasz do dyspozycji następującą funkcję:
fun formatBook(title: String, author: String, year: Int) {
println("\"$title\" by $author ($year)")
}Odczytaj trzy dane wejściowe: tytuł książki (String), imię i nazwisko autora (String) oraz rok publikacji (Int).
Wywołaj funkcję formatBook, używając argumentów nazwanych w tej konkretnej kolejności: year, title, author.
Na przykład, jeśli dane wejściowe to:
1984
George Orwell
1949Wynik powinien być następujący:
"1984" by George Orwell (1949)Spróbuj swoich sił
fun formatBook(title: String, author: String, year: Int) {
println("\"$title\" by $author ($year)")
}
fun main() {
val title = readLine()!!
val author = readLine()!!
val year = readLine()!!.toInt()
// TODO: Wywołaj formatBook, używając argumentów nazwanych w tej kolejności: year, title, author
}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ąca2Zmienne
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