¡Hola, Go!
Instalando Go SDK
Configurando GOPATH
VS Code para Go
Anatomía de un Programa Go
¡Hola, Mundo! en Go
Comentarios y Buenas Prácticas
Variables: Almacenando Datos
Declaración Corta (:=)
Constantes: Valores Fijos
Números en Go
Booleanos y Cadenas
Operadores Aritméticos
Operadores Relacionales
Operadores Lógicos
Arrays: Tu primera lista
Accediendo a elementos
Arrays Multidimensionales
Slices: Listas flexibles
Añadir y quitar elementos
Sub-slices y Capacidad
Maps: Diccionarios de Go
Operaciones con Maps
Iterando sobre Maps
Structs: Tus propios tipos
Structs Anidados y Tags
Métodos en Structs
Valor vs. Referencia
Punteros en Go
Punteros y Estructuras
Paquetes: Tu Código Ordenado
Estructura de Directorios
Módulos Go: Gestión de Deps
Añadiendo y Actualizando Deps
Versiones de Módulos
Concurrencia: ¿Qué es?
Goroutines: Tu Código Asíncrono
Esperando Goroutines
Canales: Comunicación Segura
Canales con Buffer
Sincronizando con Canales
Ejemplo: Goroutines y Canales
Cerrando Canales
Select: Múltiples Canales
Errores: El camino Go
Creando tus propios errores
Propagando errores
Errores y valores con nombre
Errores: ¿Cuándo parar?
Imprimiendo en la consola
Leyendo desde la consola
Entrada/Salida con buffers
Abriendo y cerrando archivos
Leyendo archivos
Escribiendo en archivos
Info y permisos de archivos
Directorios: Creando y listando
Errores comunes en I/O
Tu primera web en Go
Manejadores de Rutas
Respondiendo a Solicitudes
JSON: Estructuras a Texto
JSON: Texto a Estructuras
JSON en tu API Web
Introducción a las Pruebas
Escribiendo tu Primera Prueba
Pruebas de Tabla
Go Run y Go Build
Go Fmt: Código Limpio
Go Vet: Detectando Errores
Go Mod: Gestión de Módulos
Go Get: Descargando Paquetes