Basis Typecasting
Typecasting is het proces waarbij gegevens van het ene gegevenstype naar het andere worden omgezet. Het is echter belangrijk op te merken dat het niet altijd mogelijk is om gegevens van het ene type naar het andere te converteren. Zo kunnen we een float omzetten naar een int en omgekeerd. Het zou echter niet logisch zijn om een string naar een int te converteren, en daarom is dit niet mogelijk.
Er zijn twee soorten typeconversies of typecasting. Eén daarvan is impliciete typecasting. Impliciete typecasting vindt plaats wanneer Go automatisch het ene type naar het andere converteert als dit veilig en eenduidig is. Bijvoorbeeld, wanneer we een integerwaarde toewijzen aan een floatvariabele, wordt deze automatisch als float behandeld, omdat er geen gegevens verloren kunnen gaan tijdens de conversie (10 is hetzelfde als 10.0):
index.go
1var myFloat float32 = 10 // A valid statement
Het andere type typecasting is Expliciete Typecasting, waarbij de programmeur expliciet gegevens of expressies van het ene type naar het andere converteert. De syntaxis voor expliciete typecasting is desiredType(expression), bijvoorbeeld:
index.go
12345678package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
In het bovenstaande programma converteren we een float32-waarde naar een int met behulp van expliciete typecasting. Hierdoor wordt het decimale gedeelte van het oorspronkelijke getal verwijderd en wordt alleen de gehele waarde 7 opgeslagen in number2. Het is belangrijk op te merken dat in dit geval sommige gegevens verloren gaan, namelijk het decimale deel van het getal (0.9). Deze keuze hebben we echter bewust gemaakt.
Op vergelijkbare wijze kunnen we een rune omzetten naar een string. In het hoofdstuk Runes hebben we een programma onderzocht dat de waarde van een Rune weergaf, wat een getal was. We kunnen echter het karakter-equivalent van een Rune tonen door deze om te zetten naar een string:
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Het is echter niet mogelijk om een string om te zetten naar een rune:
index.go
12var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune
Het is belangrijk op te merken dat we een string die één enkel teken bevat niet kunnen omzetten naar een rune:
index.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 1.96
Basis Typecasting
Veeg om het menu te tonen
Typecasting is het proces waarbij gegevens van het ene gegevenstype naar het andere worden omgezet. Het is echter belangrijk op te merken dat het niet altijd mogelijk is om gegevens van het ene type naar het andere te converteren. Zo kunnen we een float omzetten naar een int en omgekeerd. Het zou echter niet logisch zijn om een string naar een int te converteren, en daarom is dit niet mogelijk.
Er zijn twee soorten typeconversies of typecasting. Eén daarvan is impliciete typecasting. Impliciete typecasting vindt plaats wanneer Go automatisch het ene type naar het andere converteert als dit veilig en eenduidig is. Bijvoorbeeld, wanneer we een integerwaarde toewijzen aan een floatvariabele, wordt deze automatisch als float behandeld, omdat er geen gegevens verloren kunnen gaan tijdens de conversie (10 is hetzelfde als 10.0):
index.go
1var myFloat float32 = 10 // A valid statement
Het andere type typecasting is Expliciete Typecasting, waarbij de programmeur expliciet gegevens of expressies van het ene type naar het andere converteert. De syntaxis voor expliciete typecasting is desiredType(expression), bijvoorbeeld:
index.go
12345678package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
In het bovenstaande programma converteren we een float32-waarde naar een int met behulp van expliciete typecasting. Hierdoor wordt het decimale gedeelte van het oorspronkelijke getal verwijderd en wordt alleen de gehele waarde 7 opgeslagen in number2. Het is belangrijk op te merken dat in dit geval sommige gegevens verloren gaan, namelijk het decimale deel van het getal (0.9). Deze keuze hebben we echter bewust gemaakt.
Op vergelijkbare wijze kunnen we een rune omzetten naar een string. In het hoofdstuk Runes hebben we een programma onderzocht dat de waarde van een Rune weergaf, wat een getal was. We kunnen echter het karakter-equivalent van een Rune tonen door deze om te zetten naar een string:
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Het is echter niet mogelijk om een string om te zetten naar een rune:
index.go
12var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune
Het is belangrijk op te merken dat we een string die één enkel teken bevat niet kunnen omzetten naar een rune:
index.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Bedankt voor je feedback!