Go-Übungen

Temperature Converter in Go

Give Celsius and Fahrenheit their own types so the compiler stops you mixing them.

  • Einsteiger
  • 3 Min. Lesezeit
  • 1 ausführbares Beispiel
Das lernst du
  • Defined types
  • Methods on number types
  • The String method
convert
100.0°C212.0°F
98.6°F37.0°C
-40.0°C-40.0°F

The unit is part of the type

Giving each unit its own type lets the compiler stop you from mixing Celsius and Fahrenheit by accident, even though both are float64 underneath.

Celsius and Fahrenheit are separate types with their own methods. A String method decides how fmt.Println prints a value, here with one digit after the decimal point. -40 is the one temperature that is the same on both scales.

Das Wichtigste

  1. Celsius and Fahrenheit are separate types.
  2. A String method controls printing.
  3. -40 is the same on both scales.

Ausführbares Go-Beispiel

Go
Code ausführen →
main.go
package main

import "fmt"

type Celsius float64
type Fahrenheit float64

func (c Celsius) ToFahrenheit() Fahrenheit { return Fahrenheit(c*9/5 + 32) }
func (f Fahrenheit) ToCelsius() Celsius    { return Celsius((f - 32) * 5 / 9) }

func (c Celsius) String() string    { return fmt.Sprintf("%.1f°C", float64(c)) }
func (f Fahrenheit) String() string { return fmt.Sprintf("%.1f°F", float64(f)) }

func main() {
	boiling := Celsius(100)
	body := Fahrenheit(98.6)
	cold := Celsius(-40)

	fmt.Println(boiling, "=", boiling.ToFahrenheit())
	fmt.Println(body, "=", body.ToCelsius())
	fmt.Println(cold, "=", cold.ToFahrenheit())
}
Run-Button für dieses Beispiel erstellen Ergebnis der Ausführung
100.0°C = 212.0°F
98.6°F = 37.0°C
-40.0°C = -40.0°F

Üben

Öffne das Beispiel im Online-Compiler, ändere einen Wert oder füge eine Zeile hinzu und sage die Ausgabe voraus, bevor du es ausführst. Bring den Code danach absichtlich zum Scheitern und lies die Meldung des Compilers.

Lektion fertig?

Markiere sie als gelernt, um deinen Fortschritt zu verfolgen.

Weiter: Error Handling →

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges