AnyCompiler

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)
}
Output
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)
}
Output
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")
}
Output
# 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).