De eerste stap
Bereken total voor 3 producten van 12 euro en toon het totaal op de eerste regel.
Je regelt stoelen voor een workshop: een aantal rijen met evenveel stoelen per rij. Als je de aantallen namen geeft, kun je een berekening lezen als een beschrijving van je plan. Dezelfde tussenuitkomst is daarna bruikbaar om te bepalen hoeveel plaatsen nog vrij zijn.
Een variabele is een naam met een bewaarde waarde. Binnen main kun je met rows := 4 een nieuwe variabele maken. Dat heet declareren: je introduceert de naam en geeft hem meteen een beginwaarde.
De tekens := horen bij elkaar. Links staat de nieuwe naam, rechts de waarde die Go nu moet bewaren. Een naam als rows vertelt meer over je bedoeling dan een losse 4 midden in een berekening.
Iedere variabele heeft een type, dat bepaalt welke soort waarde erbij hoort. Bij rows := 4 leidt Go het type int af: een geheel getal, dus zonder breukdeel. Je hoeft dat type bij deze korte declaratie niet apart te schrijven.
Een operator geeft een bewerking aan: * vermenigvuldigt, + telt op en - trekt af. In capacity := rows * seatsPerRow leest Go eerst beide waarden, rekent het product uit en bewaart die uitkomst onder capacity. De naam bevat dus een getal, geen formule die vanzelf opnieuw rekent.
Toekennen is een bestaande variabele een nieuwe waarde geven. Daarvoor gebruik je = zonder dubbele punt, bijvoorbeeld rows = 5. Bij capacity = rows * seatsPerRow vervang je de oude uitkomst door een nieuwe berekening.
Voorspel in het volgende voorbeeld waarom de eerste twee getoonde aantallen gelijk zijn. Voer het daarna uit; de derde regel toont wat expliciet opnieuw rekenen verandert.
package main
import "fmt"
func main() {
rows := 4
seatsPerRow := 6
capacity := rows * seatsPerRow
fmt.Println(capacity)
rows = 5
fmt.Println(capacity)
capacity = rows * seatsPerRow
fmt.Println(capacity)
}24 24 30
| Moment | rows | seatsPerRow | capacity |
|---|---|---|---|
| Na de eerste berekening | 4 | 6 | 24 |
Na alleen rows = 5 | 5 | 6 | 24 |
| Na opnieuw vermenigvuldigen | 5 | 6 | 30 |
Door de stappen apart te lezen, kun je verklaren waar ieder getal vandaan komt. fmt.Println(capacity) leest de huidige waarde van die variabele. De naam zelf verschijnt niet in de uitvoer.
Dubbele aanhalingstekens maken een string. Daardoor voert fmt.Println("rows * seatsPerRow") geen vermenigvuldiging uit: de tekst tussen de aanhalingstekens wordt letterlijk getoond. Het volgende programma laat het verschil naast elkaar zien.
package main
import "fmt"
func main() {
rows := 4
seatsPerRow := 6
fmt.Println("rows * seatsPerRow")
fmt.Println(rows * seatsPerRow)
}rows * seatsPerRow 24
De eerste uitvoerregel is de geschreven formule, de tweede is het berekende getal. Je herstelt deze fout door de berekening buiten de aanhalingstekens te zetten. De variabelen leveren dan waarden voor de operator in plaats van letters voor een boodschap.
De oefening verplaatst dezelfde werkwijze naar een kleine aankoop. price en quantity staan klaar; de variabele total moet hun product bewaren. Voor de tweede uitvoerregel gebruik je dat bewaarde totaal en trek je het kortingsbedrag af.
Je hoeft total daarvoor niet te veranderen: ook een berekening zoals capacity - 2 mag rechtstreeks tussen de haakjes van Println staan. Go rekent die uit en toont de uitkomst. De oorspronkelijke variabele behoudt haar waarde zolang je er geen nieuwe waarde aan toekent.
Controleer dus zowel de gekozen bewerking als de plaats waar de uitkomst terechtkomt. Een plus is geldige code, maar betekent iets anders dan “zoveel keer dit bedrag”. Een berekening die je nergens toont, verschijnt ook niet vanzelf in de uitvoer.
Bereken total voor 3 producten van 12 euro en toon het totaal op de eerste regel.
Toon op de tweede regel het totaal na 6 euro korting. Gebruik de variabele total.
:= introduceer je hier een nieuwe naam; met = werk je een bestaande naam bij.Hierna voeg je zulke waarden in leesbare zinnen in.
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.