O operador de declaração curta de variáveis (:=) em Golang é usado para criar variáveis com um nome e valor inicial exclusivos. O principal objetivo de usar este operador é declarar e inicializar variáveis locais dentro de funções e restringir o escopo de variáveis. O tipo da variável é determinado pelo tipo da expressão. A palavra-chave var também é usada para criar variáveis de um tipo específico. Então podemos dizer que existem duas maneiras de criar variáveis em Golang:

- Usando a palavra-chave var
- Use o operador de declaração de variável curta (:=)
Agora vamos aprender como usar o operador de declaração curta de variáveis em Golang!
Conteúdo principal
Sintaxe para usar o operador de declaração de variável curta em Golang
variable_name := biểu thức hoặc giá trị
Aqui, você deve inicializar a variável logo após a declaração. Mas usando a palavra-chave var você pode evitar a inicialização no momento da declaração. Não há necessidade de mencionar o tipo da variável. A expressão ou valor no lado direito é usado para avaliar o tipo da variável.
Por exemplo: aqui estamos declarando variáveis usando o operador de declaração curta e não especificando o tipo de variável. O tipo da variável é determinado pelo tipo da expressão no lado direito do operador :=.
// Minh họa chương trình Go dùng := (toán tử khai báo ngắn)
package main
import "fmt"
func main() {
// khai báo và khởi tạo biến
a := 30
// lấy một biến chuỗi
Language: = "Go Programming"
fmt.Println("The Value of a is: ", a)
fmt.Println("The Value of Language is: ", Language)
}
Resultado:
The Value of a is: 30
The Value of Language is: Go Programming
Declarando múltiplas variáveis usando o operador de declaração curta
O operador de declaração curta também pode ser usado para declarar múltiplas variáveis do mesmo tipo ou de tipos diferentes em uma única declaração. Os tipos dessas variáveis são avaliados pela expressão no lado direito do operador :=.
Por exemplo:
// Minh họa chương trình Go dùng toán tử khai báo ngắn := short để khai báo nhiều
// biến thành một câu lệnh khai báo duy nhất
package main
import "fmt"
func main() {
// nhiều biến của cùng kiểu(int)
geek1, geek2, geek3 := 117, 7834, 5685
// nhiều biến của các kiểu khác nhau
geek4, geek5, geek6 := "GFG", 859.24, 1234
// Hiện giá trị và kiểu của biến
fmt.Printf("The value of geek1 is : %d\n", geek1)
fmt.Printf("The type of geek1 is : %T\n", geek1)
fmt.Printf("\nThe value of geek2 is : %d\n", geek2)
fmt.Printf("The type of geek2 is : %T\n", geek2)
fmt.Printf("\nThe value of geek3 is : %d\n", geek3)
fmt.Printf("The type of geek3 is : %T\n", geek3)
fmt.Printf("\nThe value of geek4 is : %s\n", geek4)
fmt.Printf("The type of geek4 is : %T\n", geek4)
fmt.Printf("\nThe value of geek5 is : %f\n", geek5)
fmt.Printf("The type of geek5 is : %T\n", geek5)
fmt.Printf("\nThe value of geek6 is : %d\n", geek6)
fmt.Printf("The type of geek6 is : %T\n", geek6)
}
Resultado:
The value of geek1 is : 117
The type of geek1 is : int
The value of geek2 is : 7834
The type of geek2 is : int
The value of geek3 is : 5685
The type of geek3 is : int
The value of geek4 is : GFG
The type of geek4 is : string
The value of geek5 is : 859.240000
The type of geek5 is : float64
The value of geek6 is : 1234
The type of geek6 is : int
Pontos importantes a serem lembrados:
O operador de declaração curta pode ser usado quando pelo menos uma variável no lado esquerdo do operador :=é declarada como nova. O operador de declaração curta de variáveis funciona como uma atribuição a variáveis declaradas dentro do mesmo bloco lexical. Para entender melhor esse conceito, vamos ver um exemplo.
Exemplo 1: O programa abaixo gerará um erro porque não há nenhuma nova variável no lado esquerdo do operador :=.
// Minh họa chương trình Go dùng khai báo biến ngắn
package main
import "fmt"
func main() {
// lấy hai biến
p, q := 100, 200
fmt.Println("Value of p ", p, "Value of q ", q)
// Báo lỗi vì không có biến mới ở bên tay trái của :=
p, q := 500, 600
fmt.Println("Value of p ", p, "Value of q ", q)
}
Erro:
./prog.go:17:10: no new variables on left side of :=
Exemplo 2:
No programa abaixo, você pode ver que a linha geek3, geek2 := 456, 200 funcionará bem sem nenhum erro porque há pelo menos uma nova variável, ou seja, geek3, no lado esquerdo do operador :=.
// Chương trình Go dùng toán tử khai báo biến ngắn
package main
import "fmt"
func main() {
// Ở đây, khai báo biến ngắn hoạt động
// như một phép gán cho biến geek1
// vì cùng một biến có trong cùng một khối
// do đó giá trị của geek2 được thay đổi từ 100 thành 200
geek1, geek2 := 78, 100
// ở đây, := được sử dụng như một phép gán cho geek2
// vì nó đã được khai báo. Ngoài ra, dòng này
// sẽ hoạt động tốt vì geek3 mới được tạo
// biến
geek3, geek2 := 456, 200
// Nếu bạn thử chạy các dòng được chú thích,
// thì trình biên dịch sẽ báo lỗi vì
// các biến này đã được định nghĩa
// geek1, geek2 := 745, 956
// geek3 := 150
// Hiện giá trị của các biến
fmt.Printf("The value of geek1 and geek2 is : %d %d\n", geek1, geek2)
fmt.Printf("The value of geek3 and geek2 is : %d %d\n", geek3, geek2)
}
Resultado:
The value of geek1 and geek2 is : 78 200
The value of geek3 and geek2 is : 456 200
Go é uma linguagem fortemente tipada porque você não pode atribuir um valor de um tipo de dado diferente a uma variável declarada.
Por exemplo:
// Minh họa chương trình Go dùng toán tử khai báo biến ngắn
package main
import "fmt"
func main() {
// lấy một biến của int
z := 50
fmt.Printf("Value of z is %d", z)
// gán lại giá trị của kiểu chuỗi
// nó sẽ đưa ra lỗi
z := "Golang"
}
Erro:
./prog.go:16:4: no new variables on left side of :=
./prog.go:16:7: cannot use “Golang” (type string) as type int in assignment
Em uma declaração curta de variável, Golang permite inicializar um conjunto de variáveis usando uma chamada de função que retorna múltiplos valores. Ou você pode dizer que variáveis também podem receber valores que são avaliados em tempo de execução.
Por exemplo:
// Tại đây, hàm math.Max function trả về
// số lớn nhất trong biến i
i := math.Max(x, y)
Variável local ou variável global
Com a ajuda do operador de declaração curta de variáveis (:=), você pode declarar variáveis locais cujo escopo está somente no nível de bloco. Em geral, variáveis locais são declaradas dentro do bloco de função. Se você tentar declarar variáveis globais usando o operador de declaração curta, receberá um erro.
Exemplo 1:
// Chương trình Go hiển thị cách sử dụng toán tử :=
// để khai báo các biến cục bộ
package main
import "fmt"
// sử dụng từ khóa var để khai báo
// và khởi tạo biến
// đó là package hoặc bạn có thể nói
// phạm vi cấp toàn cục
var geek1 = 900
// sử dụng khai báo biến ngắn
// sẽ báo lỗi
geek2 := 200
func main() {
// truy cập geek1 bên trong hàm
fmt.Println(geek1)
// truy cập geek2 bên trong hàm
fmt.Println(geek2)
}
Erro:
./prog.go:15:1: syntax error: non-declaration statement outside function body
Exemplo 2:
// Chương trình Go dùng toán tử := operator
// để khai báo các biến cục bộ
package main
import "fmt"
// dùng từ khóa var để khai báo
// và khởi tạo biến
// nó đóng gói hoặc bạn có thể báo
// phạm vi cấp toàn cục
var geek1 = 900
func main() {
// dùng khai báo biến ngắn
// bên trong hàm chính
// nó có phạm vi cục bộ tức là không thể
// truy cập bên ngoài hàm chính
geek2 := 200
// truy cập geek1 bên trong hàm này
fmt.Println(geek1)
// truy cập geek2 bên trong hàm này
fmt.Println(geek2)
}
Resultado:
900
200