Variáveis e Tipos
Go tem duas formas de declarar uma variável: var name Type = value especifica o tipo explicitamente, enquanto name := value deixa o compilador inferir o tipo a partir do valor — := é, de longe, o estilo mais comum dentro de functions.
package main
import "fmt"
func main() {
var age int = 30
var price float64 = 19.99
var isStudent bool = false
name := "Alice"
fmt.Println(name, age, price, isStudent)
}Alice 30 19.99 false
Zero values
Declare uma variável com var e sem valor inicial, e o Go não a deixa não inicializada — cada tipo tem um zero value com o qual ela começa automaticamente: 0 para números, false para booleanos, uma string vazia para strings. Não existe equivalente a uma variável undefined ou null esperando para causar um crash.
package main
import "fmt"
func main() {
var count int
var label string
var ready bool
fmt.Println(count, label, ready)
}0 false
Como é um erro de compilação real
O compilador do Go é rigoroso sobre uma coisa em particular: uma variável que você declara mas nunca usa é um erro de compilação, não apenas um warning. Isso é genuinamente o que o compilador relata — capturado de uma execução real, não escrito para parecer plausível:
package main
import "fmt"
func main() {
message := "hello"
fmt.Println("done")
}# command-line-arguments ./main.go:6:2: message declared and not used
Nada roda — nenhum resultado, só o erro. O compilador do Go impõe isso deliberadamente: uma variável não usada é quase sempre um erro (algo que sobrou de uma refatoração, um nome digitado errado), então o compilador se recusa a compilar até que seja corrigido.
A seguir: functions — a sintaxe de func, e os múltiplos valores de retorno do Go.
Practice exercise
Declare uma variável price := 9.99 e uma variável inStock := true. Imprima-as juntas com fmt.Println(price, inStock).