← Go/De eerste bouwstenen
Les 2 van 8
MODULE 01 · 02◷ 16 min

Geef je waarden een naam

Na deze les kun je
  • Een berekening met variabelen maken
  • Een afgeleide waarde gebruiken

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 waarde een naam geven

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.

Met waarden rekenen

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.

Ruimte voor de workshop
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)
}
Verwachte uitvoer
24
24
30
MomentrowsseatsPerRowcapacity
Na de eerste berekening4624
Na alleen rows = 55624
Na opnieuw vermenigvuldigen5630

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.

Veelgemaakte fout: namen als tekst schrijven

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.

Veelgemaakte fout
package main

import "fmt"

func main() {
	rows := 4
	seatsPerRow := 6
	fmt.Println("rows * seatsPerRow")
	fmt.Println(rows * seatsPerRow)
}
Verwachte uitvoer
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.

Een tussenuitkomst hergebruiken

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.

AAN DE SLAG 0/2
1

De eerste stap

Bereken total voor 3 producten van 12 euro en toon het totaal op de eerste regel.

2

Nog een stap verder

Toon op de tweede regel het totaal na 6 euro korting. Gebruik de variabele total.

Wat je meeneemt

  • Met := introduceer je hier een nieuwe naam; met = werk je een bestaande naam bij.
  • Een tussenuitkomst bewaart de berekende waarde op dat moment.
  • Aanhalingstekens maken tekst; zonder die tekens kunnen namen en operatoren een berekening vormen.

Hierna voeg je zulke waarden in leesbare zinnen in.

main.go
UitvoerConsole
›
›_

Hier komt je resultaat.

Voer je code uit en ontdek
wat je hebt gemaakt.

0/2 stappen
EVEN MEEKIJKEN

Bekijk hoe het kan.

Je mag de oplossing bekijken. Deze poging telt dan niet mee als afgeronde les. Met Reset kun je daarna opnieuw zelf oefenen.