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

bookGrundlæ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

index.go

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

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

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

Dog kan vi 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 vigtigt at bemærke, at vi heller ikke kan konvertere en streng, der indeholder et 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 af følgende er den korrekte syntaks for type casting i Go?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

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

bookGrundlæ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

index.go

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

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

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

Dog kan vi 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 vigtigt at bemærke, at vi heller ikke kan konvertere en streng, der indeholder et 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 af følgende er den korrekte syntaks for type casting i Go?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 6
some-alt