Variabile
Pentru stocarea datelor într-un program se folosesc variabile. O variabilă reprezintă o zonă denumită în memorie care poate stoca o valoare anumită. Pentru a defini o variabilă se folosește cuvântul cheie var, urmat de numele variabilei și apoi de tipul acesteia:
var nume_variabila tip_date
Numele variabilei reprezintă un identificator arbitrar, care este format din litere, cifre și simbolul de subliniere. Primul caracter trebuie să fie fie o literă, fie simbolul de subliniere. De asemenea, numele nu trebuie să fie unul dintre cuvintele cheie: break, case, chan, const, continue, default, defer, else, fallthrough, for, func, go, goto, if, import, interface, map, package, range, return, select, struct, switch, type, var.
De exemplu, definirea unei variabile simple:
var hello string
Această variabilă se numește hello și reprezintă tipul string, adică o anumită secvență de caractere.
Se pot defini mai multe variabile simultan, separate prin virgulă:
var a, b, c string
În acest caz, variabilele a, b, c sunt definite și au tipul string. De asemenea, tipul de date se specifică o singură dată la final, iar toate variabilele vor avea acest tip.
După definirea variabilei, îi putem atribui o valoare care corespunde tipului său:
package main
import "fmt"
func main() {
var hello string
hello = "Hello world"
fmt.Println(hello)
}
Deoarece variabila hello este de tip string, îi putem atribui o valoare de tipul string. În acest caz, variabila hello stochează șirul de caractere "Hello world". Prin intermediul funcției Println, valoarea acestei variabile este afișată pe consolă.
Este important de menționat că Go este un limbaj sensibil la majuscule și minuscule, ceea ce înseamnă că variabilele hello și Hello sunt variabile diferite:
var hello string
hello = "Hello world"
fmt.Println(Hello) // ! Eroare, variabila Hello nu există, există variabila hello
De asemenea, este posibil să atribuim o valoare inițială unei variabile chiar la momentul declarării acesteia. Această metodă se numește inițializare:
package main
import "fmt"
func main() {
var hello string = "Hello world"
fmt.Println(hello)
}
Dacă dorim să definim mai multe variabile și să le atribuim valori inițiale, le putem grupa într-un bloc de paranteze:
package main
import "fmt"
func main() {
var (
name string = "Tom"
age int = 27
)
fmt.Println(name) // Tom
fmt.Println(age) // 27
}
Un aspect distinctiv al variabilelor este faptul că valoarea lor poate fi modificată de mai multe ori:
package main
import "fmt"
func main() {
var hello string = "Hello world"
fmt.Println(hello) // Hello world
hello = "Hello Go"
fmt.Println(hello) // Hello Go
hello = "Go Go Go Ole Ole Ole"
fmt.Println(hello) // Go Go Go Ole Ole Ole
}
Definirea scurtă a variabilelor
De asemenea, este posibilă o definiție scurtă a variabilei folosind sintaxa:
nume_variabila := valoare
După numele variabilei se pune semnul două puncte urmat de semnul egal și apoi se atribuie valoarea acesteia.
package main
import "fmt"
func main() {
name := "Tom"
fmt.Println(name)
}
În acest caz, tipul de date nu este specificat explicit, ci este dedus automat din valoarea atribuită. O limitare a acestui mod este faptul că poate fi utilizat doar în interiorul unei funcții. De exemplu, în exemplul de mai sus, variabila name este definită în interiorul funcției main.