Zusammenfassung – Probleme behandeln
Teil des Abschnitts Grundlagen der GO-Journey von Coddy. Lektion 109 von 109.
Aufgabe
EinfachÜben wir die Fehlerbehandlung in Go mit einem einfachen Programm zur Temperaturumrechnung.
Deine Aufgabe ist es, eine Funktion zu implementieren, die Temperaturen von Celsius in Fahrenheit umrechnet und dabei eine ordnungsgemäße Fehlerbehandlung verwendet.
Vervollständige die Funktion celsiusToFahrenheit, die:
- Eine Temperatur in Celsius mithilfe 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 musst du exakt Folgendes zurückgeben: "Error: temperature below absolute zero"
Die main-Funktion enthält Testfälle, um deine 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- und logische Operatoren
Vergleichsoperatoren – Teil 1Vergleichsoperatoren – Teil 2Logischer UND-OperatorLogischer ODER-OperatorLogischer NICHT-OperatorGrundlagen der OperatorrangfolgeZusammenfassung – Vergleiche durchführen7Kontrollfluss: Schleifen
Die `for`-Schleife erklärt`for`-Schleife – Grundlagen`for`-Schleife – nur BedingungDas Schlüsselwort `break`Das Schlüsselwort `continue`Verschachtelte SchleifenWiederholung – Aktionen wiederholen2Variablen und grundlegende Datentypen
Was ist eine VariableTypinferenz mit `:=`Ganzzahlen (int)GleitkommazahlenBoolesche WerteZeichenkettenNullwerteKonstantenNamenskonventionenRückblick – Variablen und Typen5Grundlegende Ein- und Ausgabe
Formatierte AusgabeFormatierungsverbenDatentypen ausgebenGrundlegende Benutzereingaben erhaltenRückblick – Ein- und Ausgabe8Funktionen
Funktionen verstehenEine Funktion deklarierenFunktionen aufrufenFunktionsparameterEinen einzelnen Wert zurückgebenMehrere Werte zurückgebenBenannte RückgabewerteGrundlagen des FunktionsumfangsRückblick – Wiederverwendbaren Code erstellen11Zusammengesetzte Datentypen: Slices
Einführung in SlicesSlice-Literale deklarierenSlices mit `make` erstellenSlice-Länge vs. KapazitätAuf Slice-Elemente zugreifenElemente anhängenVorhandene Slices/Arrays aufteilenÜber Slices iterierenSlices kopierenRückblick – Dynamische Listen14Grundlegende Fehlerbehandlung
Das Konzept von FehlernDas `error`-InterfaceFunktionen, die Fehler zurückgebenAuf Fehler prüfenEinfache Fehler erstellenFormatierte Fehler erstellenGrundlegende FehlerbehandlungZusammenfassung – Probleme behandeln3Grundlegende Operatoren
Arithmetische OperatorenDivisionsoperatorDer Modulo-OperatorZuweisungsoperatorErweiterte ZuweisungsoperatorenInkrement und DekrementRückblick – Berechnungen6Kontrollfluss: Bedingungen
Die `if`-AnweisungDas `else`-SchlüsselwortDas `else if`-SchlüsselwortVariablen-Shadowing in `if`Variablen initialisierenDie `switch`-AnweisungSwitch mit AusdrückenSwitch ohne AusdruckDas `fallthrough`-SchlüsselwortZusammenfassung – Entscheidungen treffen9Zeiger
Was ist ein Zeiger?Zeigervariablen deklarierenDer AdressoperatorZeiger dereferenzierenZeiger in Funktionen verwendenNil-ZeigerRückblick – Zeiger verstehen12Zusammengesetzte Datentypen: Maps
Einführung in MapsMap-Literale deklarierenMaps mit `make` erstellenSchlüssel-Wert-Paare hinzufügen und aktualisierenAuf Map-Werte zugreifenDas Vorhandensein eines Schlüssels prüfenMap-Einträge löschenLänge von MapsMaps durchlaufenZusammenfassung – Schlüssel-Wert-SpeicherungÜbe selbstständig: Online-Go-Compiler