Funzioni a espressione singola
Fa parte della sezione Fondamenti del percorso Kotlin di Coddy. Lezione 60 di 93.
Quando una funzione contiene una sola espressione, Kotlin offre una sintassi più concisa. Invece di usare le parentesi graffe e la parola chiave return, puoi usare un segno di uguale seguito direttamente dall’espressione.
Ecco una funzione normale a confronto con la sua equivalente a espressione singola:
// Funzione normale
fun double(n: Int): Int {
return n * 2
}
// Funzione a espressione singola
fun double(n: Int): Int = n * 2Entrambe le versioni funzionano allo stesso modo, ma la seconda è più breve e più facile da leggere per le operazioni semplici.
Kotlin può persino dedurre il tipo restituito delle funzioni con una singola espressione, permettendoti di ometterlo del tutto:
fun double(n: Int) = n * 2
fun greet(name: String) = "Hello, $name!"Questa sintassi funziona alla perfezione anche con le espressioni condizionali:
fun max(a: Int, b: Int) = if (a > b) a else b
fun isEven(n: Int) = n % 2 == 0Le funzioni a espressione singola sono ideali per calcoli semplici, convalide e trasformazioni. Mantengono il codice pulito e incentrato su ciò che fa la funzione, anziché sui meccanismi di restituzione di un valore.
Sfida
MedioScrivi una funzione calculateDiscount che accetta price e percentage e restituisce il prezzo scontato.
Usa la sintassi delle funzioni a espressione singola (con = invece delle parentesi graffe e di return) per calcolare il prezzo finale dopo aver applicato lo sconto.
Il prezzo scontato si calcola così: price - (price * percentage / 100)
Parametri:
price(Double): Il prezzo originalepercentage(Int): La percentuale di sconto (0-100)
Restituisce: Il prezzo dopo aver applicato lo sconto (Double)
Provalo tu
fun calculateDiscount(price: Double, percentage: Int): Double {
// Scrivi il codice qui
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaOperatori di confrontoRipasso: matematica semplice7Input/output di base
Funzione printlnTemplate di stringheInput con readLineConversione di tipoRiepilogo - Anni alla pensioneRiepilogo - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori di ritornoArgomenti denominatiValori predefinitiFunzioni a espressione singolaRiepilogo - Funzione SigmaRiepilogo - Funzione di validazione2Variabili
Val vs VarInferenza del tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Operatori logici Parte 3Ternario con espressione ifRipasso - Logica semplice8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con un tocco
Panoramica del giocoLa funzione FizzBuzz3Nullabilità
Cos'è la null safetyTipi nullableOperatore di chiamata sicuraOperatore ElvisBasi della sfida sulle funzioniAsserzione non-nullRiepilogo - Accesso sicuro6Prendere decisioni
Istruzione ifIf-elseIf come espressioneEspressione whenwhen con intervalliRiepilogo - Calcolatrice semplice9Cicli
Ciclo forCiclo whileCiclo do-whilebreakcontinueIntervalli nei cicliCiclo annidatoRipasso - fattorialeRipasso - input dinamicoEsercitati da solo: Playground Kotlin