Sintaxis y Conceptos Básicos
Sintaxis central de Go para paquetes de uso diario. Los resultados aparecen en la misma sección de código: comentarios // en la misma línea cuando son cortos, bloques // multilínea debajo de la muestra cuando no lo son.
:= declara y asigna dentro de funciones.
n := 42
s := "hi"
n // 42
// s == "hi"
Las variables no inicializadas obtienen valores cero.
var i int
var b bool
var p *int
i // 0
b // false
p // nil
if puede declarar una variable con ámbito limitado.
if n := 3 ; n > 0 {
n // 3
}
Itera sobre slices, mapas, strings, canales.
sum := 0
for _, v := range [] int { 1 , 2 , 3 } {
sum += v
}
sum // 6
No hay caída automática; los casos son expresiones.
n := 2
s := ""
switch n {
case 1 :
s = "one"
case 2 :
s = "two"
default :
s = "other"
}
s // "two"
Intercambio y asignación multivalor.
a, b := 1 , 2
a, b = b, a
a // 2
// b == 1
Constantes tipadas o no tipadas.
const Max = 100
Max // 100
iota para constantes relacionadas.
const (
A = iota // 0
B // 1
C // 2
)
B // 1
Solo conversiones explícitas.
var f float64 = 3.9
int (f) // 3
& para obtener la dirección, * para desreferenciar.
x := 5
p := & x
* p = 6
x // 6
Se ejecuta al retornar la función, en orden LIFO (Último en entrar, primero en salir).
// defer f.Close()
// se imprime después del cuerpo de la función
Raro; preferir control estructurado.
Control de bucles; break puede apuntar a etiquetas.
n := 0
for i := 0 ; i < 5 ; i ++ {
if i % 2 == 0 { continue }
n += i
}
n // 1+3 = 4
new asigna y pone a cero; make inicializa slices, mapas, canales.
s := make ([] int , 0 , 4 )
cap (s) // 4
len (s) // 0
Descarta valores con _.
_, err := strconv. Atoi ( "x" )
err != nil // true
Versiones de la pila: Go 1.26.x · chi/gin/echo más reciente (verificar en la compilación)