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
var name string = "Ada"
var age int = 36
var active boolWanneer 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:
name := "Ada" // string
age := 36 // int
pi := 3.14 // float64
active := true // boolDe basistypes die je meteen tegenkomt
| Typ | Voorbeeld | Opmerkingen |
|---|---|---|
int | 42 | grootte is afhankelijk van de CPU (32 of 64 bit) |
float64 | 3.14 | standaard voor decimale letterlijke waarden |
string | "Ada" | UTF-8, onveranderlijk |
bool | true, false | geen "waarheid", alleen pure bool |
rune | 'A' | alias van int32, vertegenwoordigt een Unicode-codepunt |
byte | 0x7F | alias 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 :=:
var (
name string = "Ada"
age int = 36
active bool
)
x, y := 10, 20
a, b, c := "a", 2, true // different types: no problemVariabelen gedeclareerd maar niet gebruikt
Go is strikt: een variabele gedeclareerd en nooit gebruikt is een compilatie
fout, geen waarschuwing. Hetzelfde geldt voor ongebruikte imports.
func main() {
x := 42
// error: x declared and not used
}Om de regel tijdelijk uit te zetten, gebruikt u _ (lege identificatie):
_ = xJouw beurt
Gebruik var om een variabelenaam van het type string met de waarde 'Ada' te declareren en af te drukken.
Toon hint
De lange vorm is `var <naam> <type> = <waarde>`.
Oplossing beschikbaar na 3 pogingen
Gebruik op één regel := om 36 toe te wijzen aan leeftijd en 'Roma' aan stad, en druk vervolgens beide af.
Toon hint
U kunt meerdere variabelen tegelijk toewijzen: `a, b := 1, "due"`.
Oplossing beschikbaar na 3 pogingen
Welke van deze declaraties levert een compilatiefout op als deze BUITEN een functie wordt geplaatst?
// (a)
var name string = "Ada"
// (b)
age := 36
// (c)
const PI = 3.14Samenvatten
- Statisch type, automatisch afgeleid door
:=of gedeclareerd metvar. :=alleen binnen functies; alleen op pakketniveauvar/const.- Ongebruikte variabelen en imports = compilatiefout: gebruik
_om ze uit te zetten. int/float64/string/booldekt 90% van de dagelijkse gevallen.