Idiomas y Trampas Comunes
Patrones y escollos que toda base de código Go encuentra. Los resultados aparecen en la misma valla: comentarios // en la misma línea cuando son cortos, bloques // multilínea debajo de la muestra cuando no lo son.
Busca en todas las páginas de la documentación
Patrones y escollos que toda base de código Go encuentra. Los resultados aparecen en la misma valla: comentarios // en la misma línea cuando son cortos, bloques // multilínea debajo de la muestra cuando no lo son.
Las funciones aceptan interfaces, retornan tipos concretos.
// func Save(s Store) errorCopia los slices antes de retornar el estado interno.
// out := make([]T, len(in)); copy(out, in); return outVariables por iteración en Go 1.22+.
// for _, v := range xs { go f(v) } // ok en 1.22+Un slice nil se codifica como null; uno vacío se codifica como [].
b, _ := json.Marshal([]int(nil))
string(b) // "null"Proporciona siempre una ruta de salida.
// select { case <-ctx.Done(): return; case ch <- v: }defer se ejecuta al final de la función; envuelve los cuerpos de los bucles.
// for ... { func(){ defer f.Close(); ... }() }Configuración opcional mediante opciones.
// type Option func(*Server)Establece siempre tiempos de espera para el cliente/servidor HTTP.
// &http.Client{Timeout: 10 * time.Second}Retorna error desde APIs públicas.
// if id == "" { return fmt.Errorf("id required") }Pasa ctx a los métodos en cada llamada.
// func (s *Svc) Get(ctx context.Context, id string)Nunca copies un Mutex; compártelo por puntero.
// type S struct { mu sync.Mutex }El orden de iteración de los mapas se aleatoriza.
// no confíes en el orden de iteración de los mapasReintenta solo operaciones idempotentes con retroceso exponencial.
// if temporary(err) { sleep; retry }go generateGeneración de código como un paso de primera clase.
// //go:generate mockgen ...Ramifica con errors.Is/As, no con strings.Contains.
// errors.Is(err, ErrNotFound)Versiones de Stack: Go 1.26.x · chi/gin/echo latest (verificar en la compilación)
Revisado por Chris St. John·Última actualización: 18 jul 2026