De eerste stap
Gebruik name om de begroeting Welkom, Sam! op de eerste regel te tonen.
Een reserveringsbericht is duidelijker als het de bestemming en het aantal plaatsen noemt. Je wilt dezelfde zin voor verschillende gegevens kunnen gebruiken, zonder telkens de hele boodschap over te typen. Met een vaste tekstvorm en losse waarden kun je dat overzichtelijk opschrijven.
Met Printf geef je eerst aan hoe de uitvoer eruit moet zien en daarna welke waarden ingevuld worden. Die eerste string heet de formaattekst. Anders dan Println plaatst Printf niet vanzelf een nieuwe regel achter de uitvoer.
Een formaatcode is een invulplaats in de tekst. %s is hier bedoeld voor een string en %d voor een geheel getal. De letter achter het procentteken helpt Go kiezen hoe het de bijbehorende waarde moet tonen.
Na de formaattekst volgen komma's en de waarden. Die waarden heten de argumenten van de aanroep. De eerste invulplaats gebruikt het eerste argument na de tekst; de tweede invulplaats gebruikt het volgende.
| In de code | Betekenis in dit voorbeeld |
|---|---|
%s | Voeg hier de bestemming als tekst in. |
%d | Voeg hier het aantal als geheel getal in. |
\n | Begin hier een nieuwe uitvoerregel. |
\n is een escape-reeks: twee geschreven tekens die samen één speciaal teken voorstellen. In een gewone string tussen dubbele aanhalingstekens betekent deze reeks een nieuwe regel. Je ziet dus niet letterlijk een backslash en een n in het resultaat.
Het voorbeeld gebruikt dezelfde getalvariabele voor het gereserveerde aantal en voor een berekening. Bekijk eerst welke waarde bij welke invulplaats hoort en druk daarna op Voorbeeld uitvoeren.
package main
import "fmt"
func main() {
destination := "Utrecht"
seats := 3
fmt.Printf("Naar %s: %d plaatsen.\n", destination, seats)
fmt.Printf("Met twee extra: %d plaatsen.\n", seats + 2)
}Naar Utrecht: 3 plaatsen. Met twee extra: 5 plaatsen.
Bij de eerste aanroep komt destination op de plaats van %s en seats op die van %d. De komma's tussen de argumenten worden niet afgedrukt. Alleen de leestekens en spaties in de formaattekst bepalen hier hoe de zin eruitziet.
Bij de tweede aanroep wordt seats + 2 eerst uitgerekend. Het resultaat gaat vervolgens naar %d. Net als in de vorige les verandert die berekening de oorspronkelijke variabele niet.
Twee aanroepen op twee regels broncode betekenen bij Printf niet automatisch twee uitvoerregels. In deze variant ontbreekt de afsluitende \n van het eerste bericht. Voer het programma uit en kijk waar het tweede bericht begint.
package main
import "fmt"
func main() {
destination := "Utrecht"
seats := 3
fmt.Printf("Naar %s: %d plaatsen.", destination, seats)
fmt.Printf("Met twee extra: %d plaatsen.\n", seats + 2)
}Naar Utrecht: 3 plaatsen.Met twee extra: 5 plaatsen.
De berichten plakken aan elkaar, omdat de tweede aanroep doorgaat waar de eerste ophield. Voeg de nieuwe regel toe binnen de eerste formaattekst, op de plek waar het eerste bericht moet eindigen. Een lege regel tussen de aanroepen in je bronbestand verandert de uitvoer niet.
In de oefening staan de tekst name en het getal lessons al klaar. Gebruik ze om de begroeting en het nummer van de volgende les te maken. Kies bij iedere invulplaats de code die bij de soort waarde hoort.
Lees een aanroep in drie stappen: eerst de vaste tekst, dan de invulplaatsen en ten slotte de argumenten in dezelfde volgorde. Controleer ook de spatie na een komma of dubbele punt en het teken waarmee de zin eindigt. Die details zijn onderdeel van de gevraagde boodschap.
Een getal tussen aanhalingstekens is tekst en heeft hier dus een andere rol dan het gehele getal uit lessons. Houd de berekening buiten de formaattekst, net zoals in het reserveringsvoorbeeld. Dan kun je de gegevens later aanpassen zonder de zin opnieuw te schrijven.
Gebruik name om de begroeting Welkom, Sam! op de eerste regel te tonen.
Gebruik lessons om Volgende les: 5 op de tweede regel te tonen. Tel er eerst één bij op.
Printf combineert een vaste formaattekst met argumenten in volgorde.%s toont hier tekst en %d een geheel getal.\n bepaal je zelf waar een nieuwe uitvoerregel begint.Je kunt nu waarden in een duidelijke tekstvorm tonen. De volgende les gebruikt gehele deling en resten om complete groepen en overgebleven spullen te berekenen.
Voer je code uit en ontdek
wat je hebt gemaakt.
Je hoeft het niet in één keer goed te doen. Na het uitvoeren zie je hier welke stappen al kloppen.