Try come espressione
Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 53 di 63.
Un blocco try/catch può produrre un valore: l’ultima espressione del blocco try completato o del blocco catch corrispondente è il suo risultato. Un blocco finally viene eseguito successivamente per la pulizia, ma la sua ultima espressione non sostituisce quel valore. Mantieni la pulizia separata dal calcolo.
All'interno di main:
val value = try { "bad".toInt() } catch (error: NumberFormatException) { -1 }
println(value)Il catch corrispondente fornisce meno uno come risultato dell'espressione.
Un'espressione try prende il suo valore dal ramo try o catch completato.
Sfida
MedioCompleta parsedDouble con il parametro text: String. Usa un'espressione try per analizzare text come Int e raddoppiarlo. Cattura NumberFormatException e usa -1. Gli input analizzati correttamente sono compresi tra -1000 e 1000; possono comparire anche stringhe non valide e fuori intervallo. Non rimuovere gli spazi.
Salvo indicazioni più restrittive riportate sopra, 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 numero di elementi, seguito dai suoi elementi, mentre una mappa inizia con il numero delle sue voci, seguito da ciascuna chiave e dal relativo valore. Le liste annidate ripetono il formato numero di elementi ed elementi per ogni riga. Il main fornito stampa il valore restituito seguito da un'interruzione di riga. Le liste usano il formato standard di Kotlin con parentesi quadre; non stampare etichette aggiuntive.
Provalo tu
fun parsedDouble(text: String): Int {
// Scrivi qui la tua soluzione.
return 0
}
fun main() {
val text = readLine().orEmpty()
println(parsedDouble(text))
}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 contatti8Ordinare e raggruppare
Ordinare in base a una chiaveCombinare i confrontiRaggruppare i valoriAssociare in base a una chiaveRiepilogo - Classifica per lunghezza11Gestione degli errori
Parsing senza eccezioniGestire errori specificiTry come espressioneConvalidare con requireRiepilogo - Quantità validate3Insiemi 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