Grundlæggende Typekonvertering
Typecasting er processen med at konvertere data fra én datatyp til en anden. Det er dog vigtigt at bemærke, at det ikke altid er muligt at konvertere data fra én datatype til en anden. For eksempel kan vi konvertere en float til en int og omvendt. Det giver dog ikke mening at konvertere en string til en int, og derfor er det ikke muligt.
Der findes to typer typekonverteringer eller typecasting. En af dem er Implicit Type Casting. Implicit type casting opstår, når Go automatisk konverterer én type til en anden, når det er sikkert og entydigt. For eksempel, når vi tildeler en heltalsværdi til en float-variabel, behandles den automatisk som en float, da ingen data går tabt under konverteringen (10 er det samme som 10.0):
index.go
1var myFloat float32 = 10 // A valid statement
Den anden type typekonvertering er Eksplicit Typekonvertering, som opstår, når programmøren eksplicit konverterer data eller udtryk fra én type til en anden. Syntaksen for eksplicit typekonvertering er desiredType(expression), for eksempel:
index.go
12345678package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
I ovenstående program konverterer vi en float32-værdi til en int ved hjælp af eksplicit typekonvertering. Som resultat bliver den decimale del af det oprindelige tal fjernet, og kun heltalsværdien 7 gemmes i number2. Det er vigtigt at bemærke, at der i dette tilfælde går nogle data tabt, specifikt den decimale del af tallet (0.9). Vi har dog truffet dette valg eksplicit.
På samme måde kan vi konvertere en rune til en string. I kapitlet Runes undersøgte vi et program, der udskrev værdien af en Rune, hvilket var et tal. Vi kan dog vise en Runes tegnækvivalent ved at konvertere den til en streng:
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Dog kan vi ikke konvertere en string til en rune:
index.go
12var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune
Det er vigtigt at bemærke, at vi heller ikke kan konvertere en streng, der indeholder et enkelt tegn, til en rune:
index.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 1.96
Grundlæggende Typekonvertering
Stryg for at vise menuen
Typecasting er processen med at konvertere data fra én datatyp til en anden. Det er dog vigtigt at bemærke, at det ikke altid er muligt at konvertere data fra én datatype til en anden. For eksempel kan vi konvertere en float til en int og omvendt. Det giver dog ikke mening at konvertere en string til en int, og derfor er det ikke muligt.
Der findes to typer typekonverteringer eller typecasting. En af dem er Implicit Type Casting. Implicit type casting opstår, når Go automatisk konverterer én type til en anden, når det er sikkert og entydigt. For eksempel, når vi tildeler en heltalsværdi til en float-variabel, behandles den automatisk som en float, da ingen data går tabt under konverteringen (10 er det samme som 10.0):
index.go
1var myFloat float32 = 10 // A valid statement
Den anden type typekonvertering er Eksplicit Typekonvertering, som opstår, når programmøren eksplicit konverterer data eller udtryk fra én type til en anden. Syntaksen for eksplicit typekonvertering er desiredType(expression), for eksempel:
index.go
12345678package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
I ovenstående program konverterer vi en float32-værdi til en int ved hjælp af eksplicit typekonvertering. Som resultat bliver den decimale del af det oprindelige tal fjernet, og kun heltalsværdien 7 gemmes i number2. Det er vigtigt at bemærke, at der i dette tilfælde går nogle data tabt, specifikt den decimale del af tallet (0.9). Vi har dog truffet dette valg eksplicit.
På samme måde kan vi konvertere en rune til en string. I kapitlet Runes undersøgte vi et program, der udskrev værdien af en Rune, hvilket var et tal. Vi kan dog vise en Runes tegnækvivalent ved at konvertere den til en streng:
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Dog kan vi ikke konvertere en string til en rune:
index.go
12var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune
Det er vigtigt at bemærke, at vi heller ikke kan konvertere en streng, der indeholder et enkelt tegn, til en rune:
index.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Tak for dine kommentarer!