Tekenreeksopmaak
Nu we alle basisgegevenstypen hebben behandeld, kunnen we stringopmaak verkennen. In programmeren houdt stringopmaak in dat variabele waarden in strings worden opgenomen.
Opmerking
De
import-instructie wordt gebruikt om packages in een Go-toepassing te importeren. Een package is een verzameling gerelateerde Go-bronbestanden die samenwerken om een set functionaliteiten of diensten te bieden. Hetfmt-pakket biedt functies waarmee we strings kunnen opmaken.
Een van de functies uit het fmt-pakket die we hebben gebruikt, is de functie Println. De functie Println toont uitvoertekst telkens op een nieuwe regel. Er is echter ook een functie genaamd Print die uitvoer weergeeft zonder naar een nieuwe regel te gaan:
index.go
12345678package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }
Over het algemeen kunnen deze functies worden gebruikt om variabele waarden in te voegen binnen tekenreeksgegevens met behulp van de volgende methode:
index.go
123456789package 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.") }
Deze methode is echter niet erg efficiënt omdat de tekenreeks in meerdere segmenten moet worden verdeeld om variabelen op de juiste plaatsen in te voegen, wat omslachtig kan worden in complexere gevallen. De functie Printf lost dit probleem op en vereenvoudigt het proces van het weergeven van geformatteerde uitvoer.
De functie Printf neemt een opmaaktekenreeks als eerste argument, gevolgd door waarden (of variabelen) die in de opmaaktekenreeks moeten worden ingevoegd. Een opmaaktekenreeks bevat aanduidingen (opmaakspecificaties) die het gewenste uitvoerformaat bepalen.
Het volgende is een voorbeeld:
index.go
12345678910package 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) }
Zoals geïllustreerd door het voorbeeld zijn formatspecificaties symbolen die dienen als plaatsaanduiding voor specifieke gegevenstypen binnen een string. Voor elk gegevenstype bestaat er een aparte formatspecificatie. De onderstaande tabel geeft een overzicht van de basis formatspecificaties:
| Formaatspecificatie | Gegevenstype |
|---|---|
%d | Integer |
%s | String |
%f | Float |
%t | Boolean |
%c | Character (of Rune) |
De variabelen vervangen de respectievelijke placeholders in de formatstring. In de uitvoer van het bovenstaande voorbeeld wordt de eerste %d vervangen door de waarde van n. Op dezelfde manier wordt de tweede vervangen door de corresponderende variabele, namelijk in, en de laatste %d wordt vervangen door de waarde van out.
We kunnen ook een string formatteren en deze opslaan in een stringvariabele met behulp van de functie Sprintf, die een string formatteert en de resulterende string retourneert voor opslag of gebruik elders, in plaats van deze direct op het scherm weer te geven:
index.go
123456789101112package 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) }
Hier volgt een complexer voorbeeld waarin meerdere eerder behandelde concepten in één programma worden gecombineerd. Het is een waardevolle oefening om het onderstaande programma en de uitvoer te bestuderen ter verbetering van je code-leesvaardigheden:
index.go
12345678910package 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) }
In sommige gevallen voert de compiler impliciete typecasting uit om waarden aan te passen aan de formaat-specificaties, zoals aangetoond in het volgende voorbeeld:
index.go
1234567package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }
De rune 'char' wordt zowel als teken als als numerieke waarde weergegeven. In sommige gevallen kan de compiler echter een foutmelding geven. Bijvoorbeeld, de volgende code zal een ongeldige uitvoer opleveren omdat een 'float' niet impliciet kan worden omgezet naar een 'int':
index.go
12var value float32 = 5.7 fmt.Printf("%d", value)
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 1.96
Tekenreeksopmaak
Veeg om het menu te tonen
Nu we alle basisgegevenstypen hebben behandeld, kunnen we stringopmaak verkennen. In programmeren houdt stringopmaak in dat variabele waarden in strings worden opgenomen.
Opmerking
De
import-instructie wordt gebruikt om packages in een Go-toepassing te importeren. Een package is een verzameling gerelateerde Go-bronbestanden die samenwerken om een set functionaliteiten of diensten te bieden. Hetfmt-pakket biedt functies waarmee we strings kunnen opmaken.
Een van de functies uit het fmt-pakket die we hebben gebruikt, is de functie Println. De functie Println toont uitvoertekst telkens op een nieuwe regel. Er is echter ook een functie genaamd Print die uitvoer weergeeft zonder naar een nieuwe regel te gaan:
index.go
12345678package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }
Over het algemeen kunnen deze functies worden gebruikt om variabele waarden in te voegen binnen tekenreeksgegevens met behulp van de volgende methode:
index.go
123456789package 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.") }
Deze methode is echter niet erg efficiënt omdat de tekenreeks in meerdere segmenten moet worden verdeeld om variabelen op de juiste plaatsen in te voegen, wat omslachtig kan worden in complexere gevallen. De functie Printf lost dit probleem op en vereenvoudigt het proces van het weergeven van geformatteerde uitvoer.
De functie Printf neemt een opmaaktekenreeks als eerste argument, gevolgd door waarden (of variabelen) die in de opmaaktekenreeks moeten worden ingevoegd. Een opmaaktekenreeks bevat aanduidingen (opmaakspecificaties) die het gewenste uitvoerformaat bepalen.
Het volgende is een voorbeeld:
index.go
12345678910package 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) }
Zoals geïllustreerd door het voorbeeld zijn formatspecificaties symbolen die dienen als plaatsaanduiding voor specifieke gegevenstypen binnen een string. Voor elk gegevenstype bestaat er een aparte formatspecificatie. De onderstaande tabel geeft een overzicht van de basis formatspecificaties:
| Formaatspecificatie | Gegevenstype |
|---|---|
%d | Integer |
%s | String |
%f | Float |
%t | Boolean |
%c | Character (of Rune) |
De variabelen vervangen de respectievelijke placeholders in de formatstring. In de uitvoer van het bovenstaande voorbeeld wordt de eerste %d vervangen door de waarde van n. Op dezelfde manier wordt de tweede vervangen door de corresponderende variabele, namelijk in, en de laatste %d wordt vervangen door de waarde van out.
We kunnen ook een string formatteren en deze opslaan in een stringvariabele met behulp van de functie Sprintf, die een string formatteert en de resulterende string retourneert voor opslag of gebruik elders, in plaats van deze direct op het scherm weer te geven:
index.go
123456789101112package 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) }
Hier volgt een complexer voorbeeld waarin meerdere eerder behandelde concepten in één programma worden gecombineerd. Het is een waardevolle oefening om het onderstaande programma en de uitvoer te bestuderen ter verbetering van je code-leesvaardigheden:
index.go
12345678910package 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) }
In sommige gevallen voert de compiler impliciete typecasting uit om waarden aan te passen aan de formaat-specificaties, zoals aangetoond in het volgende voorbeeld:
index.go
1234567package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }
De rune 'char' wordt zowel als teken als als numerieke waarde weergegeven. In sommige gevallen kan de compiler echter een foutmelding geven. Bijvoorbeeld, de volgende code zal een ongeldige uitvoer opleveren omdat een 'float' niet impliciet kan worden omgezet naar een 'int':
index.go
12var value float32 = 5.7 fmt.Printf("%d", value)
Bedankt voor je feedback!