Kursinhalt
Einführung in Golang
Einführung in Golang
Grundlegende Typumwandlung
Typumwandlung ist der Prozess der Umwandlung von Daten von einem Datentyp in einen anderen. Es ist jedoch wichtig zu beachten, dass es nicht immer möglich ist, Daten von einem Datentyp in einen anderen zu konvertieren. Zum Beispiel können wir einen float
in einen int
und umgekehrt konvertieren. Es wäre jedoch nicht sinnvoll, einen string
in einen int
zu konvertieren, und daher ist dies nicht möglich.
Es gibt zwei Arten von Typkonvertierungen oder Typumwandlungen. Eine davon ist die Implizite Typumwandlung. Implizite Typumwandlung tritt auf, wenn Go automatisch einen Typ in einen anderen umwandelt, wenn es sicher und eindeutig ist. Zum Beispiel, wenn wir einem Float-Variable einen ganzzahligen Wert zuweisen, wird er automatisch als Float behandelt, da bei der Umwandlung keine Daten verloren gehen können (10
ist dasselbe wie 10.0
):
index
var myFloat float32 = 10 // A valid statement
Die andere Art der Typumwandlung ist das Explizite Typ-Casting, das auftritt, wenn der Programmierer Daten oder Ausdrücke explizit von einem Typ in einen anderen umwandelt. Die Syntax für explizites Typ-Casting ist desiredType(expression)
, zum Beispiel:
index
package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
Im obigen Programm konvertieren wir einen float32
-Wert in einen int
mittels explizitem Typ-Casting. Dadurch wird der Dezimalteil der ursprünglichen Zahl verworfen, und nur der ganzzahlige Wert 7
wird in number2
gespeichert. Es ist wichtig zu beachten, dass in diesem Fall einige Daten verloren gehen, insbesondere der Dezimalteil der Zahl (0.9
). Diese Entscheidung haben wir jedoch bewusst getroffen.
Ähnlich können wir ein rune
in einen string
umwandeln. Im Kapitel Runen haben wir ein Programm untersucht, das den Wert einer Rune ausgab, der eine Zahl war. Wir können jedoch das Zeichenäquivalent einer Rune anzeigen, indem wir sie in einen String umwandeln:
index
package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Wir können jedoch einen string
nicht in einen rune
umwandeln:
index
var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune
Es ist wichtig zu beachten, dass wir auch keinen String, der ein einzelnes Zeichen enthält, in eine Rune umwandeln können:
index
package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Danke für Ihr Feedback!