0Pricing
Go Academy · Lektion

Typkonvertierungen in Go

Explizite Konvertierungen, Typ-Aliase und definierte Typen

Typkonvertierungen in Go ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum explizite Konvertierungen?

Go konvertiert niemals implizit zwischen Typen. Dadurch werden schwer erkennbare Fehler verhindert, bei denen eine Ganzzahl unbemerkt überläuft oder eine Gleitkommazahl an Genauigkeit verliert.

  • Konvertierungen müssen explizit geschrieben werden: T(value)
  • Der Compiler erkennt inkompatible Typen zur Kompilierzeit
  • Dadurch wird Go-Code vorhersehbar und sicher

Numerische Konvertierungen

Konvertieren Sie zwischen numerischen Typen, indem Sie den Zieltyp als Funktionsaufruf verwenden:

package main

func main() {
    var i int = 42
    var f float64 = float64(i)
    var u uint = uint(f)
    _ = u
}

Risiko der Kürzung

Die Konvertierung von einem größeren in einen kleineren Typ kürzt den Wert. Es wird kein Fehler ausgelöst – Sie müssen vorsichtig sein:

package main

func main() {
    big := int64(300)
    small := int8(big) // 300 % 256 = 44 — silent truncation!
    _ = small
}

Konvertierungen zwischen string und []byte

Bei der Konvertierung zwischen string und []byte werden die Daten kopiert:

package main

func main() {
    s := "hello"
    b := []byte(s)   // string to byte slice
    b[0] = 'H'
    s2 := string(b)  // byte slice to string
    _ = s2
}

string und []rune

Für Unicode-sichere Zeichenverarbeitung konvertieren Sie in []rune:

package main

func main() {
    s := "Merhaba"
    runes := []rune(s)
    _ = len(runes) // character count, not byte count
}

strconv-Paket

Für die Konvertierung zwischen Zeichenketten und Zahlen verwenden Sie das Paket strconv:

import "strconv"

func main() {
    n, err := strconv.Atoi("42")   // string -> int
    s := strconv.Itoa(123)          // int -> string
    _ = n; _ = err; _ = s
}

strconv.ParseFloat und FormatFloat

Parsen und formatieren Sie Gleitkommazeichenketten sicher:

import "strconv"

func main() {
    f, err := strconv.ParseFloat("3.14", 64)
    if err != nil { return }
    s := strconv.FormatFloat(f, 'f', 2, 64) // "3.14"
    _ = s
}

Typaliase und definierte Typen im Vergleich

Go unterscheidet zwischen Typaliasen und definierten Typen:

  • type Celsius float64 – neuer definierter Typ; erfordert eine explizite Konvertierung zu float64 und zurück
  • type Celsius = float64 – Alias; austauschbar mit float64

Beispiel für einen definierten Typ

Definierte Typen verbessern die Klarheit der API und verhindern versehentliche Vermischungen:

type Celsius float64
type Fahrenheit float64

func CtoF(c Celsius) Fahrenheit {
    return Fahrenheit(c*9/5 + 32)
}

func main() {
    boiling := Celsius(100)
    _ = CtoF(boiling)
}

Konvertierungen von Interface-Typen

Jeder Wert kann in einen Interface-Typ konvertiert werden, den er erfüllt. Für die Rückkonvertierung ist eine Type Assertion erforderlich:

var i interface{} = "hello"
s, ok := i.(string) // type assertion
if ok {
    _ = s // safe to use
}

Kurze Überprüfung

Welche Funktion konvertiert in Go einen String in einen int?

Zusammenfassung: Typkonvertierungen

Die wichtigsten Erkenntnisse zu Typkonvertierungen in Go:

  • Go konvertiert niemals implizit – verwenden Sie die Syntax T(value)
  • Numerische Konvertierungen können zu einem Abschneiden von Werten führen – machen Sie sich das Risiko ausdrücklich bewusst
  • []byte(s) und string(b) kopieren die Daten
  • Verwenden Sie strconv.Atoi / strconv.Itoa für Konvertierungen zwischen Strings und Zahlen
  • Für definierte Typen sind explizite Konvertierungen erforderlich, für Aliase nicht

Nächster Kurs: Kontrollfluss mit if, for und switch.

Häufig gestellte Fragen

Ist die Lektion „Typkonvertierungen in Go“ kostenlos?

Ja — der vollständige Text von „Typkonvertierungen in Go“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Typkonvertierungen in Go“?

Explizite Konvertierungen, Typ-Aliase und definierte Typen Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Go Academy zu starten?

Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Typkonvertierungen in Go“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?

Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Variablen in Go deklarieren
  2. Integrierte Go-Typen
  3. Konstanten und iota
  4. Typkonvertierungen in Go
← Zurück zu Go Academy