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 kann ein float in einen int und umgekehrt umgewandelt werden. Es wäre jedoch nicht sinnvoll, einen string in einen int umzuwandeln, daher ist dies nicht möglich.
Es gibt zwei Arten von Typumwandlungen. Eine davon ist die implizite Typumwandlung. Implizite Typumwandlung tritt auf, wenn Go automatisch einen Typ in einen anderen umwandelt, sofern dies sicher und eindeutig ist. Zum Beispiel wird beim Zuweisen eines Integer-Werts zu einer Float-Variablen dieser Wert automatisch als Float behandelt, da bei der Umwandlung keine Daten verloren gehen können (10 ist dasselbe wie 10.0):
index.go
1var myFloat float32 = 10 // A valid statement
Die andere Art des Type Castings ist das explizite Type Casting, bei dem der Programmierer Daten oder Ausdrücke explizit von einem Typ in einen anderen umwandelt. Die Syntax für explizites Type Casting ist desiredType(expression), zum Beispiel:
index.go
12345678package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
Im obigen Programm wandeln wir einen float32-Wert mithilfe von explizitem Type Casting in einen int um. Dadurch wird der Dezimalteil der ursprünglichen Zahl verworfen und nur der ganzzahlige Wert 7 in number2 gespeichert. Es ist wichtig zu beachten, dass in diesem Fall Daten verloren gehen, insbesondere der Dezimalteil der Zahl (0.9). Diese Entscheidung wurde jedoch bewusst getroffen.
Ebenso können wir einen rune in einen string umwandeln. Im Kapitel Runes haben wir ein Programm betrachtet, das den Wert eines Runes ausgegeben hat, welcher eine Zahl war. Wir können jedoch das Zeichenäquivalent eines Runes anzeigen, indem wir ihn in einen String umwandeln:
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Allerdings können wir einen string nicht in einen rune umwandeln:
index.go
12var 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 einen String, der ein einzelnes Zeichen enthält, nicht in eine Rune umwandeln können:
index.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 1.96
Grundlegende Typumwandlung
Swipe um das Menü anzuzeigen
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 kann ein float in einen int und umgekehrt umgewandelt werden. Es wäre jedoch nicht sinnvoll, einen string in einen int umzuwandeln, daher ist dies nicht möglich.
Es gibt zwei Arten von Typumwandlungen. Eine davon ist die implizite Typumwandlung. Implizite Typumwandlung tritt auf, wenn Go automatisch einen Typ in einen anderen umwandelt, sofern dies sicher und eindeutig ist. Zum Beispiel wird beim Zuweisen eines Integer-Werts zu einer Float-Variablen dieser Wert automatisch als Float behandelt, da bei der Umwandlung keine Daten verloren gehen können (10 ist dasselbe wie 10.0):
index.go
1var myFloat float32 = 10 // A valid statement
Die andere Art des Type Castings ist das explizite Type Casting, bei dem der Programmierer Daten oder Ausdrücke explizit von einem Typ in einen anderen umwandelt. Die Syntax für explizites Type Casting ist desiredType(expression), zum Beispiel:
index.go
12345678package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
Im obigen Programm wandeln wir einen float32-Wert mithilfe von explizitem Type Casting in einen int um. Dadurch wird der Dezimalteil der ursprünglichen Zahl verworfen und nur der ganzzahlige Wert 7 in number2 gespeichert. Es ist wichtig zu beachten, dass in diesem Fall Daten verloren gehen, insbesondere der Dezimalteil der Zahl (0.9). Diese Entscheidung wurde jedoch bewusst getroffen.
Ebenso können wir einen rune in einen string umwandeln. Im Kapitel Runes haben wir ein Programm betrachtet, das den Wert eines Runes ausgegeben hat, welcher eine Zahl war. Wir können jedoch das Zeichenäquivalent eines Runes anzeigen, indem wir ihn in einen String umwandeln:
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Allerdings können wir einen string nicht in einen rune umwandeln:
index.go
12var 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 einen String, der ein einzelnes Zeichen enthält, nicht in eine Rune umwandeln können:
index.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Danke für Ihr Feedback!