Zusammenfassung – Probleme behandeln
Teil des Abschnitts Grundlagen der GO-Journey von Coddy — Lektion 109 von 109.
Aufgabe
EinfachLassen Sie uns die Fehlerbehandlung in Go mit einem einfachen Temperaturumrechnungsprogramm üben.
Ihre Aufgabe ist es, eine Funktion zu implementieren, die Temperaturen von Celsius in Fahrenheit umrechnet, mit ordnungsgemäßer Fehlerbehandlung.
Vervollständigen Sie die Funktion celsiusToFahrenheit, die:
- Eine Celsius-Temperatur unter Verwendung der Formel F = C × 9/5 + 32 in Fahrenheit umrechnet
- Einen Fehler zurückgibt, wenn die Temperatur unter dem absoluten Nullpunkt (-273.15°C) liegt
Für die Fehlermeldung müssen Sie genau Folgendes zurückgeben: "Error: temperature below absolute zero"
Die main-Funktion enthält Testfälle, um Ihre Implementierung zu überprüfen.
Probier es selbst
package main
import (
"errors"
"fmt"
)
// celsiusToFahrenheit konvertiert Celsius in Fahrenheit
// Gibt einen Fehler zurück, wenn die Temperatur unter dem absoluten Nullpunkt liegt (-273,15°C)
func celsiusToFahrenheit(celsius float64) (float64, error) {
// TODO: Implementierung der Konvertierungslogik
// 1. Prüfen, ob die Temperatur unter dem absoluten Nullpunkt liegt (-273,15°C)
// 2. Wenn gültig, mit der Formel konvertieren: F = C × 9/5 + 32
// 3. Entsprechenden Wert und Fehler zurückgeben
return 0, nil
}
func main() {
// Teste gültige Temperatur
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)
}
// Teste eine weitere gültige Temperatur
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)
}
// Teste ungültige Temperatur (unter dem absoluten Nullpunkt)
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)
}
}Alle Lektionen in Grundlagen
4Vergleichs- & logische Operatoren
Vergleichsoperatoren - Teil 1Vergleichsoperatoren - Teil 2Logischer UND-OperatorLogischer ODER-OperatorLogischer NICHT-OperatorGrundlagen der OperatorrangfolgeZusammenfassung - Vergleiche anstellen7Kontrollfluss: Schleifen
Die `for`-Schleife erklärtfor-Schleife - Grundlagenfor-Schleife - Nur BedingungDas `break`-SchlüsselwortDas `continue`-SchlüsselwortVerschachtelte SchleifenZusammenfassung - Aktionen wiederholen2Variablen und grundlegende Datentypen
Was ist eine VariableTypinferenz mit `:=`Ganzzahlen (int)GleitkommazahlenBoolesche WerteStringsZero ValuesKonstantenNamenskonventionenZusammenfassung - Variablen und Typen5Grundlagen der Ein- und Ausgabe
Formatierte AusgabeFormat-VerbenTypen ausgebenEinfache Benutzereingaben erhaltenZusammenfassung – Ein- und Ausgabe8Funktionen
Funktionen verstehenEine Funktion deklarierenFunktionen aufrufenFunktionsparameterEinen einzelnen Wert zurückgebenMehrere Werte zurückgebenBenannte RückgabewerteGrundlagen des Funktions-ScopesZusammenfassung – Wiederverwendbaren Code erstellen11Zusammengesetzte Typen: Slices
Einführung in SlicesDeklaration von Slice-LiteralenSlices mit `make` erstellenSlice-Länge vs. KapazitätZugriff auf Slice-ElementeElemente anhängenSlicing von bestehenden Slices/ArraysIterieren über SlicesKopieren von SlicesZusammenfassung – Dynamische Listen14Grundlagen der Fehlerbehandlung
Das Konzept von FehlernDas `error`-InterfaceFunktionen, die Fehler zurückgebenFehler prüfenEinfache Fehler erstellenFormatierte Fehler erstellenGrundlagen der FehlerbehandlungZusammenfassung – Probleme behandeln3Grundlegende Operatoren
Arithmetische OperatorenDivisionsoperatorDer Modulo-OperatorZuweisungsoperatorKombinierte ZuweisungsoperatorenInkrement und DekrementZusammenfassung - Berechnungen6Kontrollfluss: Bedingte Anweisungen
Die `if`-AnweisungDas `else`-SchlüsselwortDas `else if`-SchlüsselwortVariable Shadowing in `if`Variablen initialisierenDie `switch`-AnweisungSwitch mit AusdrückenSwitch ohne AusdruckDas `fallthrough`-SchlüsselwortZusammenfassung – Entscheidungen treffen9Zeiger
Was ist ein Zeiger?Deklarieren von ZeigervariablenDer AdressoperatorDereferenzieren von ZeigernVerwendung von Zeigern in FunktionenNil-ZeigerZusammenfassung – Zeiger verstehen12Zusammengesetzte Typen: Maps
Einführung in MapsDeklarieren von Map-LiteralenErstellen von Maps mit `make`Hinzufügen und Aktualisieren von Key-Value-PaarenZugriff auf Map-WerteÜberprüfen der Existenz von SchlüsselnLöschen von Map-EinträgenMap-LängeIterieren über MapsZusammenfassung – Key-Value-Speicher