Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grunnleggende Typekonvertering | Datatyper
Introduksjon til Golang

bookGrunnleggende Typekonvertering

Typecasting er prosessen med å konvertere data fra én datatyp til en annen. Det er imidlertid viktig å merke seg at det ikke alltid er mulig å konvertere data fra én datatyp til en annen. For eksempel kan vi konvertere en float til en int og omvendt. Det gir derimot ikke mening å konvertere en string til en int, og derfor er det ikke mulig.

Det finnes to typer typekonverteringer eller typecasting. En av dem er implisitt typekonvertering. Implisitt typekonvertering skjer når Go automatisk konverterer én type til en annen når det er trygt og entydig. For eksempel, når vi tildeler en heltallsverdi til en flyttallsvariabel, behandles den automatisk som en float, siden ingen data kan gå tapt under konverteringen (10 er det samme som 10.0):

index.go

index.go

copy
1
var myFloat float32 = 10 // A valid statement

Den andre typen typekonvertering er eksplisitt typekonvertering, som skjer når programmereren eksplisitt konverterer data eller uttrykk fra én type til en annen. Syntaksen for eksplisitt typekonvertering er desiredType(expression), for eksempel:

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 }

I programmet ovenfor konverterer vi en float32-verdi til en int ved hjelp av eksplisitt typekonvertering. Som et resultat blir desimaldelen av det opprinnelige tallet forkastet, og kun heltallsverdien 7 lagres i number2. Det er viktig å merke seg at i dette tilfellet går noe data tapt, nærmere bestemt desimaldelen av tallet (0.9). Dette valget har vi imidlertid gjort eksplisitt.

På samme måte kan vi konvertere en rune til en string. I Runes-kapitlet utforsket vi et program som skrev ut verdien til en Rune, som var et tall. Vi kan imidlertid vise en Runes tegnrepresentasjon ved å konvertere den til en streng:

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

Vi kan derimot ikke konvertere en string til en 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

Det er viktig å merke seg at vi heller ikke kan konvertere en streng som inneholder ett enkelt tegn til en 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

Hvilken av følgende er riktig syntaks for typekonvertering i Go?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 6

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 1.96

bookGrunnleggende Typekonvertering

Sveip for å vise menyen

Typecasting er prosessen med å konvertere data fra én datatyp til en annen. Det er imidlertid viktig å merke seg at det ikke alltid er mulig å konvertere data fra én datatyp til en annen. For eksempel kan vi konvertere en float til en int og omvendt. Det gir derimot ikke mening å konvertere en string til en int, og derfor er det ikke mulig.

Det finnes to typer typekonverteringer eller typecasting. En av dem er implisitt typekonvertering. Implisitt typekonvertering skjer når Go automatisk konverterer én type til en annen når det er trygt og entydig. For eksempel, når vi tildeler en heltallsverdi til en flyttallsvariabel, behandles den automatisk som en float, siden ingen data kan gå tapt under konverteringen (10 er det samme som 10.0):

index.go

index.go

copy
1
var myFloat float32 = 10 // A valid statement

Den andre typen typekonvertering er eksplisitt typekonvertering, som skjer når programmereren eksplisitt konverterer data eller uttrykk fra én type til en annen. Syntaksen for eksplisitt typekonvertering er desiredType(expression), for eksempel:

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 }

I programmet ovenfor konverterer vi en float32-verdi til en int ved hjelp av eksplisitt typekonvertering. Som et resultat blir desimaldelen av det opprinnelige tallet forkastet, og kun heltallsverdien 7 lagres i number2. Det er viktig å merke seg at i dette tilfellet går noe data tapt, nærmere bestemt desimaldelen av tallet (0.9). Dette valget har vi imidlertid gjort eksplisitt.

På samme måte kan vi konvertere en rune til en string. I Runes-kapitlet utforsket vi et program som skrev ut verdien til en Rune, som var et tall. Vi kan imidlertid vise en Runes tegnrepresentasjon ved å konvertere den til en streng:

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

Vi kan derimot ikke konvertere en string til en 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

Det er viktig å merke seg at vi heller ikke kan konvertere en streng som inneholder ett enkelt tegn til en 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

Hvilken av følgende er riktig syntaks for typekonvertering i Go?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 6
some-alt