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 zufloat64und zurücktype Celsius = float64– Alias; austauschbar mitfloat64
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)undstring(b)kopieren die Daten- Verwenden Sie
strconv.Atoi/strconv.Itoafü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
- Variablen in Go deklarieren
- Integrierte Go-Typen
- Konstanten und iota
- Typkonvertierungen in Go