Funkcje z pojedynczym wyrażeniem
Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 60 z 93.
Gdy funkcja zawiera tylko jedno wyrażenie, Kotlin oferuje bardziej zwięzłą składnię. Zamiast używać nawiasów klamrowych i słowa kluczowego return, możesz użyć znaku równości, po którym bezpośrednio następuje wyrażenie.
Oto zwykła funkcja w porównaniu z jej jednowyrażeniowym odpowiednikiem:
// Zwykła funkcja
fun double(n: Int): Int {
return n * 2
}
// Funkcja z pojedynczym wyrażeniem
fun double(n: Int): Int = n * 2Obie wersje działają identycznie, ale druga jest krótsza i łatwiejsza do odczytania w przypadku prostych operacji.
Kotlin potrafi nawet wywnioskować typ zwracany przez funkcje jednowyrażeniowe, dzięki czemu możesz całkowicie go pominąć:
fun double(n: Int) = n * 2
fun greet(name: String) = "Hello, $name!"Ta składnia świetnie sprawdza się także w wyrażeniach warunkowych:
fun max(a: Int, b: Int) = if (a > b) a else b
fun isEven(n: Int) = n % 2 == 0Funkcje z pojedynczym wyrażeniem świetnie nadają się do prostych obliczeń, walidacji i transformacji. Dzięki nim kod jest przejrzysty i skupia się na tym, co robi funkcja, a nie na mechanizmie zwracania wartości.
Wyzwanie
ŚredniNapisz funkcję calculateDiscount, która przyjmuje price i percentage oraz zwraca cenę po obniżce.
Użyj składni funkcji z pojedynczym wyrażeniem (z = zamiast nawiasów klamrowych i return), aby obliczyć cenę końcową po zastosowaniu obniżki.
Cenę po obniżce oblicza się następująco: price - (price * percentage / 100)
Parametry:
price(Double): Cena wyjściowapercentage(Int): Procent obniżki (0-100)
Zwraca: Cenę po zastosowaniu obniżki (Double)
Spróbuj swoich sił
fun calculateDiscount(price: Double, percentage: Int): Double {
// Napisz tutaj kod
}
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