English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Voraussetzungen, Sie sollten gelernt haben:Golang DatenTypen
wird eine Typumwandlung durchgeführt, wenn wir einen Wert eines DatenTyps einem anderen DatenTyp zuweisen. Typumwandlungen wie in C / C ++Statische Typensprachen wie Java bieten Unterstützung für implizite Typumwandlungen, aber Golang ist anders, weil es selbst dann, wenn DatenTypen kompatibel sind, eswird auch nicht unterstütztAutomatische Typumwandlung oder implizite Typumwandlung. Der Grund ist, dass Golangs starres Typensystem dies nicht erlaubt. Für Typumwandlungen muss eine explizite Umwandlung durchgeführt werden.
Wie führt Golang Typumwandlungen durch?
Wenn Sie bestimmte Merkmale der DatenTypenstruktur nutzen müssen, müssen wir die Entitäten von einem DatenTyp in einen anderen Typ umwandeln. Die allgemeine Syntax zum Konvertieren eines Wertes val in einen Typ T ist T(val).
var w3codebox1 int = 845 // Explizite Typumwandlung var w3codebox2 float64 = float64(w3codebox1) var w3codebox3 int64 = int64(w3codebox1) var w3codebox4 uint = uint(w3codebox1)
//Berechnung des Durchschnitts package main import "fmt" func main() { var gesamtbetrag int = 446 var zahl int = 23 var avg float32 // Explizite Typumwandlung avg = float32(Gesamtbetrag) / float32(Zahl) // Ergebnis anzeigen fmt.Printf("Durchschnitt = %f\n", avg) }
Ausgabe:
Durchschnitt = 19.391304
Hinweis:Da Golang ein starkes Typensystem hat, ist es nicht erlaubt, numerische Typen in Ausdrücken zu mischen (z.B. Addition, Subtraktion, Multiplikation, Division usw.) und es ist nicht erlaubt, zwischen zwei gemischten Typen Typzuweisungen durchzuführen.
var w3codebox1 int64 = 875 //Es wirft uns einen Fehler beim Kompilieren vor //weil eine gemischte Typenoperation ausgeführt wird, z.B. int64als int-Typ var w3codebox2 int = w3codebox1 var w3codebox3 int = 100 //Es wirft einen Compilerfehler aus //Das ist eine ungültige Operation //weil der Typ gemischt ist int64 und int addieren var addition = w3codebox1 + w3codebox3