Direct naar de hoofdinhoud
Module 1 · Les 1 van 51/50 in de cursus~10 min
Modulelessen (1/5)

Variabelen en typen

In Go heeft elke variabele een statisch type dat bekend is bij de compiler: één keer gedeclareerd, kan een variabele niet van type veranderen. Deze stijfheid is heel anders van JavaScript of Python — is de prijs die u betaalt voor compileertijd fouten in plaats van runtime-fouten, kleine binaire bestanden en voorspelbaar prestatie.

Twee vormen van aangifte

var met expliciet type

Go
var name string = "Ada"
var age int = 36
var active bool

Wanneer u de waarde weglaat (zoals in var active bool), ontvangt de variabele de nulwaarde in zijn soort — we komen hier in de volgende les op terug.

Korte verklaring :=

Binnen een functie kun je := gebruiken, wat het type afleidt van de uitdrukking aan de rechterkant. Het is de idiomatische vorm en degene die u zult gebruiken 90% van de tijd:

Go
name := "Ada"   // string
age := 36        // int
pi := 3.14       // float64
active := true   // bool

De basistypes die je meteen tegenkomt

TypVoorbeeldOpmerkingen
int42grootte is afhankelijk van de CPU (32 of 64 bit)
float643.14standaard voor decimale letterlijke waarden
string"Ada"UTF-8, onveranderlijk
booltrue, falsegeen "waarheid", alleen pure bool
rune'A'alias van int32, vertegenwoordigt een Unicode-codepunt
byte0x7Falias van uint8

Er zijn ook int8/16/32/64, uint8/16/32/64, float32 en complex64/128 voor wanneer u nauwkeurige afmetingen nodig heeft (binaire parsering, interoperabiliteit, enz.).

Meerdere aangiften

Je kunt verschillende variabelen declareren met een var-blok of een meervoud :=:

Go
var (
    name   string = "Ada"
    age    int    = 36
    active bool
)

x, y := 10, 20
a, b, c := "a", 2, true   // different types: no problem

Variabelen gedeclareerd maar niet gebruikt

Go is strikt: een variabele gedeclareerd en nooit gebruikt is een compilatie fout, geen waarschuwing. Hetzelfde geldt voor ongebruikte imports.

Go
func main() {
    x := 42
    // error: x declared and not used
}

Om de regel tijdelijk uit te zetten, gebruikt u _ (lege identificatie):

Go
_ = x

Jouw beurt

Oefening#go.m1.l1.e1
Pogingen: 0Laden…

Gebruik var om een ​​variabelenaam van het type string met de waarde 'Ada' te declareren en af ​​te drukken.

Editor laden…
Toon hint

De lange vorm is `var <naam> <type> = <waarde>`.

Oplossing beschikbaar na 3 pogingen

Oefening#go.m1.l1.e2
Pogingen: 0Laden…

Gebruik op één regel := om 36 toe te wijzen aan leeftijd en 'Roma' aan stad, en druk vervolgens beide af.

Editor laden…
Toon hint

U kunt meerdere variabelen tegelijk toewijzen: `a, b := 1, "due"`.

Oplossing beschikbaar na 3 pogingen

Quiz#go.m1.l1.e3
Klaar

Welke van deze declaraties levert een compilatiefout op als deze BUITEN een functie wordt geplaatst?

Go
// (a)
var name string = "Ada"

// (b)
age := 36

// (c)
const PI = 3.14
Antwoordmogelijkheden

Samenvatten

  • Statisch type, automatisch afgeleid door := of gedeclareerd met var.
  • := alleen binnen functies; alleen op pakketniveau var/const.
  • Ongebruikte variabelen en imports = compilatiefout: gebruik _ om ze uit te zetten.
  • int/float64/string/bool dekt 90% van de dagelijkse gevallen.