Salt la conținutul principal
Modulul 1 · Lecția 1 din 51/50 în curs~10 min
Lecții din modul (1/5)

Variabile și tipuri

În Go fiecare variabilă are un tip static cunoscut de compilator: o dată declarată, o variabilă nu poate schimba tipul. Această rigiditate — foarte diferită din JavaScript sau Python - este prețul pe care îl plătiți pentru a obține timpul de compilare erori în loc de cele de rulare, binare mici și previzibile performanta.

Două forme de declarație

var cu tip explicit

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

Când omiteți valoarea (ca în var active bool), variabila primește valoare zero de acest tip — vom reveni la asta în lecția următoare.

Declarație scurtă :=

În interiorul unei funcții puteți utiliza :=, care deduce tipul din expresie din dreapta. Este forma idiomatică și cea pe care o vei folosi 90% din timp:

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

Tipurile de bază pe care le veți întâlni imediat

TipExempluNote
int42dimensiunea depinde de CPU (32 sau 64 de biți)
float643.14implicit pentru literalele zecimale
string"Ada"UTF-8, imuabil
booltrue, falsenici un „adevăr”, doar pur bool
rune'A'alias-ul int32, reprezintă un punct de cod Unicode
byte0x7Falias de uint8

Există și int8/16/32/64, uint8/16/32/64, float32 și complex64/128 pentru atunci când aveți nevoie de dimensiuni precise (parsare binară, interoperabilitate etc.).

Declarații multiple

Puteți declara mai multe variabile cu un bloc var sau cu un plural :=:

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

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

Variabile declarate dar neutilizate

Go este strict: o variabilă declarată și niciodată folosită este o compilație eroare, nu un avertisment. Același lucru este valabil și pentru imports neutilizate.

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

Pentru a opri regula temporar, utilizați _ (identificator gol):

Go
_ = x

Rândul tău

Exercițiu#go.m1.l1.e1
Încercări: 0Se încarcă…

Utilizați var pentru a declara un nume de variabilă de tip șir cu valoarea „Ada” și imprimați-o.

Se încarcă editorul...
Afișează indiciu

Forma lungă este `var <nume> <tip> = <valoare>`.

Soluție disponibilă după 3 încercări

Exercițiu#go.m1.l1.e2
Încercări: 0Se încarcă…

Pe o singură linie, utilizați := pentru a atribui 36 vârstei și „Roma” orașului, apoi imprimați ambele.

Se încarcă editorul...
Afișează indiciu

Puteți atribui mai multe variabile simultan: `a, b := 1, "due"`.

Soluție disponibilă după 3 încercări

Quiz#go.m1.l1.e3
Gata

Care dintre aceste declarații produce o eroare de compilare dacă este plasată în afara unei funcții?

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

// (b)
age := 36

// (c)
const PI = 3.14
Opțiuni de răspuns

Recapitulare

  • Tip static, dedus automat prin := sau declarat cu var.
  • := numai în interiorul funcțiilor; numai la nivel de pachet var/const.
  • Variabile și importuri neutilizate = eroare de compilare: utilizați _ pentru a le opri.
  • int/float64/string/bool acoperă 90% din cazurile de zi cu zi.