English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O operador de declaração de variável curta (:=) do Golang é usado para criar variáveis com nomes apropriados e valores iniciais. O principal objetivo deste operador é declarar e inicializar variáveis locais dentro de funções, e restringir o escopo das 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 tipos específicos. Portanto, você pode dizer que há duas maneiras de criar variáveis no Golang, conforme mostrado a seguir:
usar a palavra-chave var
usar o operador de declaração de variável curta (:=)
Neste artigo, discutiremos apenas o operador de declaração de variável curta. Para entender a palavra-chave var, você podeno Goreferênciapalavra-chave var.
A sintaxe do operador de declaração de variável curta:
variable_name := expressão ou valor
Aqui, é necessário inicializar variáveis imediatamente após a declaração, sem mencionar o tipo da variável, e a expressão ou valor à direita é usada para avaliar o tipo da variável. O uso da palavra-chave var pode evitar a inicialização na declaração.
exemplo:}Aqui, usamos o operador de declaração curta para declarar variáveis sem especificar o tipo da variável. O tipo da variável é determinado por:=o tipo da expressão à direita do operador determina.
package main import "fmt" func main() { //declarar e inicializar variáveis a := 30 //aceitar uma variável de string Language := "Go Language Basic Tutorial" fmt.Println("a's value: ", a) fmt.Println("Language's value: ", Language) }
Saída:
o valor de a é: 30 Language's value: Go Language Basic Tutorial
o operador de declaração curta também pode ser usado para declarar várias variáveis em uma única declaraçãodo mesmo tipo ou de tipos diferentesvárias variáveis. O tipo dessas variáveis é determinado por:=a avaliação da expressão à direita do operador.
package main import "fmt" func main() { //várias variáveis do mesmo tipo (int) w3codebox1, w3codebox2, w3codebox3 := 117, 7834, 5685 //vários tipos de variáveis diferentes w3codebox4, w3codebox5, w3codebox6 := "GFG", 859.24, 1234 //mostrar o valor e o tipo da variável fmt.Printf("w3codebox1 o valor é : %d\n", w3codebox1)} fmt.Printf("w3codebox1 o tipo é : %T\n", w3codebox1)} fmt.Printf("\nw3codebox2 o valor é : %d\n", w3codebox2)} fmt.Printf("w3codebox2 o tipo é : %T\n", w3codebox2)} fmt.Printf("\nw3codebox3 o valor é : %d\n", w3codebox3)} fmt.Printf("w3codebox3 o tipo é : %T\n", w3codebox3)} fmt.Printf("\nw3codebox4 o valor é : %s\n", w3codebox4)} fmt.Printf("w3codebox4 o tipo é : %T\n", w3codebox4)} fmt.Printf("\nw3codebox5 o valor é : %f\n", w3codebox5)} fmt.Printf("w3codebox5 o tipo é : %T\n", w3codebox5)} fmt.Printf("\nw3codebox6 o valor é : %d\n", w3codebox6)} fmt.Printf("w3codebox6 o tipo é : %T\n", w3codebox6)} }
Saída:
w3codebox1 o valor é : 117 w3codebox1 o tipo é : int w3codebox2 o valor é : 7834 w3codebox2 o tipo é : int w3codebox3 o valor é : 5685 w3codebox3 o tipo é : int w3codebox4 o valor é : GFG w3codebox4 o tipo é : string w3codebox5 o valor é : 859.240000 w3codebox5 o tipo é : float64 w3codebox6 o valor é : 1234 w3codebox6 o tipo é : int
usando o operador de declaração curta (:=),você pode declararapenas têm escopo de blocodas variáveis locais.Geralmente, as variáveis locais são declaradas dentro do bloco de função. Se tentar declarar uma variável global usando o operador de declaração curta (:=), será lançada uma mensagem de erro.
package main import "fmt" //usar a palavra-chave var para declarar //e inicializar a variável //é uma variável do pacote, ou você pode dizer que é de escopo global var w3codebox1 := 900 //usar declarações de variáveis curtas //ele lançará um erro w3codebox2 := 200 func main() { //no acesso ao w dentro da função3codebox1 fmt.Println(w3codebox1)} // no acesso ao w dentro da função3codebox2 fmt.Println(w3codebox2)} }
erro de saída:
.\test.go:12:1:erro de sintaxe: não-declaração de sentença fora do corpo da função #.\test.go:12:1:erro de sintaxe: sentença não declarada fora do corpo da função
package main import "fmt" //declarar uma variável global usando var var w3codebox1 := 900 func main() { //usar declarações de variáveis curtas //dentro da função principal //ele possui escopo local, ou seja, não pode //no exterior da função principal w3codebox2 := 200 //no acesso ao w dentro da função3codebox1 fmt.Println(w3codebox1)} //no acesso ao w dentro da função3codebox2 fmt.Println(w3codebox2)} }
Saída:
900 200