Riepilogo - Gestire i problemi
Fa parte della sezione Fondamenti del percorso GO di Coddy. Lezione 109 di 109.
Sfida
FacileFacciamo pratica con la gestione degli errori in Go con un semplice programma di conversione della temperatura.
Il tuo compito è implementare una funzione che converta le temperature da Celsius a Fahrenheit, con una corretta gestione degli errori.
Completa la funzione celsiusToFahrenheit che:
- Converte una temperatura in Celsius in Fahrenheit usando la formula: F = C × 9/5 + 32
- Restituisce un errore se la temperatura è inferiore allo zero assoluto (-273.15°C)
Per il messaggio di errore, devi restituire esattamente: "Error: temperature below absolute zero"
La funzione main contiene casi di test per verificare la tua implementazione.
Provalo tu
package main
import (
"errors"
"fmt"
)
// celsiusToFahrenheit converte da Celsius a Fahrenheit
// Restituisce un errore se la temperatura è inferiore allo zero assoluto (-273.15°C)
func celsiusToFahrenheit(celsius float64) (float64, error) {
// TODO: Implementare la logica di conversione
// 1. Verificare se la temperatura è inferiore allo zero assoluto (-273.15°C)
// 2. Se è valida, convertirla usando la formula: F = C × 9/5 + 32
// 3. Restituire il valore e l'errore appropriati
return 0, nil
}
func main() {
// Verificare una temperatura valida
fmt.Println("Converting 25°C to Fahrenheit:")
fahrenheit, err := celsiusToFahrenheit(25)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("25°C = %.2f°F\n", fahrenheit)
}
// Verificare un'altra temperatura valida
fmt.Println("\nConverting 0°C to Fahrenheit:")
fahrenheit, err = celsiusToFahrenheit(0)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("0°C = %.2f°F\n", fahrenheit)
}
// Verificare una temperatura non valida (inferiore allo zero assoluto)
fmt.Println("\nConverting -300°C to Fahrenheit:")
fahrenheit, err = celsiusToFahrenheit(-300)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("-300°C = %.2f°F\n", fahrenheit)
}
}Tutte le lezioni di Fondamenti
4Operatori di confronto e logici
Operatori di confronto - Parte 1Operatori di confronto - Parte 2Operatore AND logicoOperatore OR logicoOperatore NOT logicoNozioni di base sulla precedenza degli operatoriRiepilogo - Eseguire confronti7Flusso di controllo: cicli
Come funziona il ciclo `for`Ciclo `for` - baseCiclo `for` - solo condizioneLa parola chiave `break`La parola chiave `continue`Cicli annidatiRiepilogo - ripetere le azioni2Variabili e tipi di dati di base
Che cos'è una variabileInferenza del tipo con `:=`Numeri interi (int)Numeri in virgola mobileValori booleaniStringheValori zeroCostantiConvenzioni di denominazioneRiepilogo: variabili e tipi5Input/output di base
Output formattatoVerbi di formattazioneVisualizzazione dei tipiAcquisire input di base dall’utenteRiepilogo - Input e output8Funzioni
Capire le funzioniDichiarare una funzioneChiamare le funzioniParametri delle funzioniRestituire un singolo valoreRestituire più valoriValori restituiti con nomeFondamenti dell'ambito delle funzioniRiepilogo - Creare codice riutilizzabile11Tipi compositi: slice
Introduzione alle sliceDichiarare valori letterali di sliceCreare slice con `make`Lunghezza e capacità di una sliceAccedere agli elementi di una sliceAggiungere elementiCreare slice da slice/array esistentiIterare sulle sliceCopiare le sliceRiepilogo - Liste dinamiche14Gestione di base degli errori
Il concetto di erroreL'interfaccia `error`Funzioni che restituiscono erroriControllare la presenza di erroriCreare errori sempliciCreare errori formattatiGestione di base degli erroriRiepilogo - Gestire i problemi3Operatori di base
Operatori aritmeticiOperatore di divisioneL'operatore moduloOperatore di assegnazioneOperatori di assegnazione compostaIncremento e decrementoRiepilogo - Calcoli6Flusso di controllo: condizioni
L'istruzione `if`La parola chiave `else`La parola chiave `else if`Ombreggiamento delle variabili in `if`Inizializzare le variabiliL'istruzione `switch``switch` con espressioni`switch` senza espressioneLa parola chiave `fallthrough`Riepilogo: prendere decisioni9Puntatori
Che cos’è un puntatore?Dichiarare variabili puntatoreL’operatore indirizzoDereferenziare i puntatoriUsare i puntatori nelle funzioniPuntatori nilRipasso - Capire i puntatori12Tipi compositi: mappe
Introduzione alle mappeDichiarare i letterali delle mappeCreare mappe con `make`Aggiungere e aggiornare coppie chiave-valoreAccedere ai valori delle mappeVerificare l'esistenza di una chiaveEliminare elementi dalle mappeLunghezza delle mappeIterare sulle mappeRiepilogo - Archiviazione chiave-valoreEsercitati da solo: Compilatore Go online