Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Grundlegende Typumwandlung | Datentypen
Einführung in Golang

bookGrundlegende 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

index.go

copy
1
var 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

index.go

copy
12345678
package 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

index.go

copy
123456789
package 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

index.go

copy
12
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 einen String, der ein einzelnes Zeichen enthält, nicht in eine Rune umwandeln können:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
question mark

Welche der folgenden ist die korrekte Syntax für Type Casting in Go?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 6

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 1.96

bookGrundlegende 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

index.go

copy
1
var 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

index.go

copy
12345678
package 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

index.go

copy
123456789
package 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

index.go

copy
12
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 einen String, der ein einzelnes Zeichen enthält, nicht in eine Rune umwandeln können:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
question mark

Welche der folgenden ist die korrekte Syntax für Type Casting in Go?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 6
some-alt