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
var name string = "Ada"
var age int = 36
var active boolCâ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:
name := "Ada" // string
age := 36 // int
pi := 3.14 // float64
active := true // boolTipurile de bază pe care le veți întâlni imediat
| Tip | Exemplu | Note |
|---|---|---|
int | 42 | dimensiunea depinde de CPU (32 sau 64 de biți) |
float64 | 3.14 | implicit pentru literalele zecimale |
string | "Ada" | UTF-8, imuabil |
bool | true, false | nici un „adevăr”, doar pur bool |
rune | 'A' | alias-ul int32, reprezintă un punct de cod Unicode |
byte | 0x7F | alias 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 :=:
var (
name string = "Ada"
age int = 36
active bool
)
x, y := 10, 20
a, b, c := "a", 2, true // different types: no problemVariabile 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.
func main() {
x := 42
// error: x declared and not used
}Pentru a opri regula temporar, utilizați _ (identificator gol):
_ = xRândul tău
Utilizați var pentru a declara un nume de variabilă de tip șir cu valoarea „Ada” și imprimați-o.
Afișează indiciu
Forma lungă este `var <nume> <tip> = <valoare>`.
Soluție disponibilă după 3 încercări
Pe o singură linie, utilizați := pentru a atribui 36 vârstei și „Roma” orașului, apoi imprimați ambele.
Afișează indiciu
Puteți atribui mai multe variabile simultan: `a, b := 1, "due"`.
Soluție disponibilă după 3 încercări
Care dintre aceste declarații produce o eroare de compilare dacă este plasată în afara unei funcții?
// (a)
var name string = "Ada"
// (b)
age := 36
// (c)
const PI = 3.14Recapitulare
- Tip static, dedus automat prin
:=sau declarat cuvar. :=numai în interiorul funcțiilor; numai la nivel de pachetvar/const.- Variabile și importuri neutilizate = eroare de compilare: utilizați
_pentru a le opri. int/float64/string/boolacoperă 90% din cazurile de zi cu zi.