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

bookStrengformatering

Nå som vi har lært om alle de grunnleggende datatypene, kan vi utforske strengformatering. I programmering innebærer strengformatering å sette inn variabelverdier i strenger.

Merk

import-setningen brukes for å importere pakker i en Go-applikasjon. En pakke er en samling relaterte Go-kildefiler som samarbeider for å tilby et sett med funksjoner eller tjenester. fmt-pakken gir funksjoner som lar oss formatere strenger.

En av funksjonene fra fmt-pakken som vi har brukt, er Println-funksjonen. Println-funksjonen viser utdata på en ny linje hver gang. Det finnes imidlertid en funksjon som heter Print som viser utdata uten å gå til en ny linje:

index.go

index.go

copy
12345678
package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }

Generelt kan vi bruke disse funksjonene til å sette inn variabelverdier i strengdata ved å bruke følgende metode:

index.go

index.go

copy
123456789
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }

Denne metoden er imidlertid ikke særlig effektiv fordi vi må dele opp strengen i mange segmenter for å sette inn variabler på relevante steder, noe som kan bli tungvint i mer komplekse tilfeller. Printf-funksjonen løser dette problemet og forenkler prosessen med å vise formatert utdata.

Printf-funksjonen tar en formatstreng som sitt første argument, etterfulgt av verdier (eller variabler) som skal settes inn i formatstrengen. En formatstreng inneholder plassholdere (formatspecifiers) som definerer ønsket format på utdata.

Følgende er et eksempel:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }

Som illustrert i eksemplet, er formatsymboler symboler som fungerer som plassholdere for bestemte datatyper i en streng. Det finnes et eget formatsymbol for hver datatype. Tabellen nedenfor gir en oversikt over grunnleggende formatsymboler:

FormatspesifikatorDatatype
%dInteger
%sString
%fFloat
%tBoolean
%cCharacter (eller Rune)

Variablene erstatter de respektive plassholderne i formatstrengen. I utdataene fra eksempelet ovenfor blir den første %d erstattet med verdien til n. Tilsvarende blir den andre erstattet med den tilhørende variabelen, som er in, og den siste %d blir erstattet med verdien til out.

Vi kan også formatere en streng og lagre den i en strengvariabel ved å bruke funksjonen Sprintf, som formaterer en streng og returnerer den resulterende strengen for lagring eller bruk andre steder, i stedet for å vise den direkte på skjermen:

index.go

index.go

copy
123456789101112
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }

Her er et mer komplekst eksempel som inkluderer flere konsepter vi tidligere har gjennomgått i ett enkelt program. Det vil være en verdifull øvelse å gjennomgå følgende program og dets utdata for å styrke dine ferdigheter i å lese kode:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }

I noen tilfeller utfører kompilatoren implisitt typekonvertering for å matche verdier med formatspesifikatorer, som vist i følgende eksempel:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }

Runen 'char' vises både som et tegn og som en numerisk verdi. I enkelte tilfeller kan det imidlertid oppstå en kompilatorfeil. For eksempel vil følgende kode gi ugyldig utdata fordi en 'float' ikke kan konverteres implisitt til en 'int':

index.go

index.go

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
question mark

Hva vil være utdataene fra programmet nedenfor?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 7

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

Suggested prompts:

Can you explain more about how to use different format specifiers?

What happens if I use the wrong format specifier for a variable?

Can you show more examples of string formatting in Go?

Awesome!

Completion rate improved to 1.96

bookStrengformatering

Sveip for å vise menyen

Nå som vi har lært om alle de grunnleggende datatypene, kan vi utforske strengformatering. I programmering innebærer strengformatering å sette inn variabelverdier i strenger.

Merk

import-setningen brukes for å importere pakker i en Go-applikasjon. En pakke er en samling relaterte Go-kildefiler som samarbeider for å tilby et sett med funksjoner eller tjenester. fmt-pakken gir funksjoner som lar oss formatere strenger.

En av funksjonene fra fmt-pakken som vi har brukt, er Println-funksjonen. Println-funksjonen viser utdata på en ny linje hver gang. Det finnes imidlertid en funksjon som heter Print som viser utdata uten å gå til en ny linje:

index.go

index.go

copy
12345678
package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }

Generelt kan vi bruke disse funksjonene til å sette inn variabelverdier i strengdata ved å bruke følgende metode:

index.go

index.go

copy
123456789
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }

Denne metoden er imidlertid ikke særlig effektiv fordi vi må dele opp strengen i mange segmenter for å sette inn variabler på relevante steder, noe som kan bli tungvint i mer komplekse tilfeller. Printf-funksjonen løser dette problemet og forenkler prosessen med å vise formatert utdata.

Printf-funksjonen tar en formatstreng som sitt første argument, etterfulgt av verdier (eller variabler) som skal settes inn i formatstrengen. En formatstreng inneholder plassholdere (formatspecifiers) som definerer ønsket format på utdata.

Følgende er et eksempel:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }

Som illustrert i eksemplet, er formatsymboler symboler som fungerer som plassholdere for bestemte datatyper i en streng. Det finnes et eget formatsymbol for hver datatype. Tabellen nedenfor gir en oversikt over grunnleggende formatsymboler:

FormatspesifikatorDatatype
%dInteger
%sString
%fFloat
%tBoolean
%cCharacter (eller Rune)

Variablene erstatter de respektive plassholderne i formatstrengen. I utdataene fra eksempelet ovenfor blir den første %d erstattet med verdien til n. Tilsvarende blir den andre erstattet med den tilhørende variabelen, som er in, og den siste %d blir erstattet med verdien til out.

Vi kan også formatere en streng og lagre den i en strengvariabel ved å bruke funksjonen Sprintf, som formaterer en streng og returnerer den resulterende strengen for lagring eller bruk andre steder, i stedet for å vise den direkte på skjermen:

index.go

index.go

copy
123456789101112
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }

Her er et mer komplekst eksempel som inkluderer flere konsepter vi tidligere har gjennomgått i ett enkelt program. Det vil være en verdifull øvelse å gjennomgå følgende program og dets utdata for å styrke dine ferdigheter i å lese kode:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }

I noen tilfeller utfører kompilatoren implisitt typekonvertering for å matche verdier med formatspesifikatorer, som vist i følgende eksempel:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }

Runen 'char' vises både som et tegn og som en numerisk verdi. I enkelte tilfeller kan det imidlertid oppstå en kompilatorfeil. For eksempel vil følgende kode gi ugyldig utdata fordi en 'float' ikke kan konverteres implisitt til en 'int':

index.go

index.go

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
question mark

Hva vil være utdataene fra programmet nedenfor?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 7
some-alt