AnyCompiler

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