Passare funzioni
Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 28 di 63.
Una funzione di ordine superiore accetta un valore funzione o ne restituisce uno. Dichiara un parametro della funzione con un tipo funzione, poi chiamalo all'interno della funzione ausiliaria. Se l'ultimo argomento è una lambda, Kotlin ti permette di collocare le sue parentesi graffe dopo le parentesi della chiamata.
fun applyTwice(n: Int, operation: (Int) -> Int): Int {
return operation(operation(n))
}All'interno di main:
println(applyTwice(2) { it + 3 })La prima chiamata trasforma due in cinque; la seconda trasforma cinque in otto.
Un parametro di funzione può essere richiamato ripetutamente con risultati intermedi.
Sfida
MedioCompleta twiceDouble con il parametro value: Int. Usa l'helper applyTwice fornito e una lambda che raddoppia. Restituisci il risultato dopo aver applicato due volte l'operazione di raddoppio.
A meno che sopra non siano specificati limiti più rigidi, le raccolte contengono al massimo 100 elementi a ogni livello, e gli argomenti interi e i valori interi delle raccolte sono compresi tra -1000 e 1000. Il testo fornito per l'analisi può includere rappresentazioni non valide o fuori intervallo, come descritto.
Restituisci un valore di tipo Int. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; una lista inizia con il suo conteggio seguito dai suoi elementi, e una mappa inizia con il conteggio delle sue voci seguito da ogni chiave e valore. Le liste annidate ripetono il formato conteggio-ed-elementi per ogni riga. Il main fornito stampa il valore restituito seguito da un carattere di nuova riga. Le liste usano il formato standard di Kotlin con parentesi quadre; non stampare etichette aggiuntive.
Provalo tu
fun applyTwice(n: Int, operation: (Int) -> Int): Int {
return operation(operation(n))
}
fun twiceDouble(value: Int): Int {
// Scrivi qui la tua soluzione.
return 0
}
fun main() {
val value = readln().toInt()
println(twiceDouble(value))
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Mappe Parte 1
Creare mappeConsultare le mappe in modo sicuroAggiornare le mappeControllare le chiaviRiepilogo - Banco di borsa4Collezioni annidate
Liste di listeAttraversare le righeRiepiloghi delle righeAppiattire liste annidateRipasso - File di posti a sedere7Pipeline di collezioni
Trasformare con MapFiltrare i valoriVerificare le regole della collezioneAccumulare con FoldRiepilogo - Totali approvati2Mappe Parte 2
Iterare sulle voci delle mappeChiavi e valoriMappe di frequenzaMappe annidateRiepilogo - Report delle frequenze5Progetto - Rubrica
Salva contattiTrova contatti3Insiemi e appartenenza
Creare insiemiAggiornare gli insiemiOperazioni sugli insiemiVerificare i sottoinsiemiRiepilogo - Ospiti dell'evento6Valori delle funzioni
Scrivere funzioni lambdaTipi di funzionePassare funzioniVariabili catturateRiepilogo - Punteggio configurabileEsercitati da solo: Playground Kotlin