Artículos

  • Generales 0

    Structs en Go: definición, instanciación y campos anónimos (embedding)

    Aprende a definir e instanciar structs en Go, la diferencia entre campos exportados y privados, cómo usar punteros a struct, el embedding para composición de tipos, struct tags para JSON y el error típico del bucle range, con ejemplos prácticos progresivos.

  • Generales 0

    Métodos en Go: value receivers vs pointer receivers

    En Go, elegir entre value receiver y pointer receiver define si tu método puede modificar el objeto original, qué interfaces puede cumplir tu tipo y qué errores verás en tiempo de compilación. Guía con ejemplos prácticos y errores frecuentes.

  • Generales 0

    Interfaces en Go: duck typing estático e implicit satisfaction

    Las interfaces en Go se satisfacen de forma implícita: si tu tipo tiene los métodos correctos, ya cumple la interfaz sin declararlo. Aprende duck typing estático, composición de interfaces, interface{}/any, type assertion y type switch con ejemplos prácticos.

  • Generales 0

    El tipo error en Go: crear errores, envolverlos y comprobarlos bien

    El tipo error en Go es una interfaz simple con un único método Error() string. Aprende a crear errores con errors.New y fmt.Errorf, a envolver errores con el verbo %w para añadir contexto, y a comprobarlos correctamente con errors.Is y errors.As aunque hayan pasado por varias capas de la aplic...

  • 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.