Variables y Tipos
Go tiene dos formas de declarar una variable: var name Type = value especifica el tipo explícitamente, mientras que name := value deja que el compilador infiera el tipo a partir del valor — := es, con diferencia, el estilo más común dentro de las funciones.
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
Declara una variable con var y sin valor inicial, y Go no la deja sin inicializar — cada tipo tiene un zero value con el que empieza automáticamente: 0 para números, false para booleanos, un string vacío para strings. No existe un equivalente a una variable undefined o null esperando para causar un fallo.
package main
import "fmt"
func main() {
var count int
var label string
var ready bool
fmt.Println(count, label, ready)
}0 false
Cómo se ve un error de compilación real
El compilador de Go es estricto sobre algo en particular: una variable que declaras pero nunca usas es un error de compilación, no solo una advertencia. Esto es genuinamente lo que reporta el compilador — capturado de una ejecución real, no escrito para parecer plausible:
package main
import "fmt"
func main() {
message := "hello"
fmt.Println("done")
}# command-line-arguments ./main.go:6:2: message declared and not used
Nada se ejecuta en absoluto — no hay resultado, solo el error. El compilador de Go hace cumplir esto deliberadamente: una variable sin usar casi siempre es un error (algo que quedó de una refactorización, un nombre mal escrito), así que el compilador se niega a compilar hasta que se solucione.
Siguiente: funciones — la sintaxis de func, y los múltiples valores de retorno de Go.
Practice exercise
Declara una variable price := 9.99 y una variable inStock := true. Imprímelas juntas con fmt.Println(price, inStock).