Artículos

  • Generales 0

    defer en Go: cuándo se ejecuta, orden LIFO y usos prácticos

    defer en Go pospone la ejecución de una función hasta que la función actual retorna. Aprende cuándo se evalúan los argumentos, el orden LIFO con varios defer, cómo usarlo con ficheros, recover() y las trampas habituales en bucles.

  • Generales 0

    panic y recover en Go: cuándo usarlos y cuándo no

    panic en Go detiene el goroutine actual y ejecuta los defers antes de terminar el programa. Con recover en un defer puedes interceptarlo y convertirlo en un error normal. Aprende cuándo tiene sentido usarlo y por qué no debes sustituir el tipo error con panics.

  • Generales 0

    Arrays y slices en Go: la diferencia crucial y cómo funciona append

    Aprende la diferencia entre arrays y slices en Go: por qué [3]int y [4]int son tipos distintos, cómo funciona append cuando se supera la capacidad, cuándo copy() es necesario y por qué pasar un slice a una función puede modificar el original.

  • Generales 0

    Maps en Go: creación, lectura segura con el patrón ok y delete

    Aprende a usar maps en Go: cómo crearlos con make o literales, leer claves sin errores usando el patrón ok, añadir y eliminar con delete, iterar con range y evitar problemas con nil maps y goroutines concurrentes.

  • Generales 0

    range en Go: iterar slices, maps, strings y canales de forma idiomática

    El operador range en Go permite recorrer slices, maps, strings y canales de forma idiomática. Aprende a usarlo bien, evita el error más común con structs y descubre cómo recorre runas Unicode en vez de bytes al trabajar con cadenas de texto.

  • Generales 0

    Paquetes en Go: imports, visibilidad y cómo organizar el código

    Cómo funciona el sistema de paquetes de Go: exportar con mayúscula, import paths con módulos, alias, blank imports, init(), y cómo estructurar un proyecto con cmd/, internal/ y pkg/. Incluye errores reales del compilador y por qué Go no permite ciclos de importación.

  • Generales 0

    Go Modules: go.mod, go.sum y gestión de dependencias en 2026

    Aprende a gestionar dependencias en Go con el sistema de módulos: go.mod, go.sum, go get y go mod tidy. Versiones principales, directiva replace, workspaces con go.work y configuración de repositorios privados con GOPRIVATE.

  • Generales 0

    Goroutines en Go: lanzar tareas concurrentes con go y cómo funcionan

    Las goroutines son funciones que Go ejecuta de forma concurrente con la palabra clave go. Aprende cómo funciona el scheduling M:N, por qué puedes lanzar miles sin problema, qué son las race conditions y cómo detectarlas con go run -race.

  • Generales 0

    Canales en Go: enviar, recibir, close y canales direccionales

    Aprende a usar canales en Go (chan): crear con make, enviar y recibir valores, buffered channels, cerrar con close(), recorrer con range, canales unidireccionales y el patrón pipeline con ejemplos reales.

  • Generales 0

    select en Go: esperar en múltiples canales y el caso por defecto

    El select en Go bloquea hasta que uno de sus canales está listo y ejecuta ese case. Aprende a usar el case default para no bloquear, timeout con time.After, fan-in para combinar canales, done channel para cancelar goroutines y cómo manejar la prioridad entre cases.