Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Basis Typecasting | Gegevenstypen
Introductie tot Golang

bookBasis 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

index.go

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

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 }

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

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' }

Het is echter niet mogelijk om een string om te zetten naar een rune:

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

Het is belangrijk op te merken dat we een string die één enkel teken bevat niet kunnen omzetten naar een rune:

index.go

index.go

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

Welke van de volgende is de juiste syntaxis voor typecasting in Go?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 1.96

bookBasis 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

index.go

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

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 }

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

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' }

Het is echter niet mogelijk om een string om te zetten naar een rune:

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

Het is belangrijk op te merken dat we een string die één enkel teken bevat niet kunnen omzetten naar een rune:

index.go

index.go

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

Welke van de volgende is de juiste syntaxis voor typecasting in Go?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 6
some-alt