¿Ya dominas lo básico? Un curso estructurado de Go es la vía rápida para dar el salto.
Ver cursos de Go en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (fmt.Println)
- 03Trabajar con variables
- 04Condicionales (la sentencia if)
- 05Repetir (la sentencia for)
- 06Escribir una función
- 07Slices (listas)
- 08Repetir (usar for en lugar de while)
- 09Structs (el estilo orientado a objetos de Go)
- 10Manejo de errores
- 11Ordenar un slice
- 12Funciones recursivas
- 13Usar la biblioteca estándar
- 14La sentencia switch
- 15Funciones anónimas (closures)
- 16Reutilizar código con embedding
- 17Escribir comentarios
- 18Operadores lógicos (&&, ||, !)
- 19Constantes (const)
- 20Dividir y unir cadenas (Split, Join)
- 21Escribir código seguro frente a nil
- 22Buscar en un slice
- 23Transformar un slice (una operación tipo map)
- 24Slices de dos dimensiones (datos en tabla)
- 25Escribir un tipo de error propio
- 26Parámetros variádicos (...)
- 27Representar un conjunto con un map
- 28Probar con tu propia función assert
- 29Funciones de orden superior (pasar una función como argumento)
- 30Pilas y colas (estructuras de datos básicas)
- 31Conversión de tipos (casting), lo básico
- 32Introducción a las expresiones regulares
- 33El algoritmo de búsqueda binaria
- 34Construir un cifrado César (desplazamiento de caracteres)
- 35Entender cómo funciona la ordenación de burbuja
- 36Construir y mostrar fechas
- 37Escribir varios casos de prueba juntos
- 38Acelerar cálculos con memoización (caché)
- 39Normalizar cadenas (TrimSpace, unificar mayúsculas)
- 40Copia superficial y copia profunda
- 41Enumerados con iota
- 42Aplanar un slice
- 43Invertir una cadena y comprobar si es palíndromo
- 44Emparejar dos slices (la operación zip)
- 45Redondear números (Floor, Ceil, Round)
- 46Cadenas de varias líneas (comillas invertidas)
- 47Funciones que devuelven varios valores
- 48Calcular el MCD y el MCM (algoritmo de Euclides)
- 49Dar formato a números (rellenar dígitos, decimales)
- 50Limpieza con defer
- 51Escribir funciones genéricas
- 52Leer y escribir archivos, lo básico
- 53Generar números aleatorios
- 54Operadores a nivel de bit (AND, OR, XOR, desplazamientos)
- 55Leer argumentos de la línea de órdenes
- 56Esperar un tiempo fijo (time.Sleep)
- 57Cuidado con los errores de redondeo en coma flotante
- 58Leer de la entrada estándar
- 59FizzBuzz (el ejercicio clásico)
- 60Comprobar si un número es primo
- 61Operaciones de conjunto con maps (unión, intersección, diferencia)
- 62Convertir entre bases (binario, hexadecimal)
- 63Comprobar paréntesis equilibrados (aplicación de pilas)
- 64Comprobar si dos palabras son anagramas
- 65Comprobar si un año es bisiesto
- 66Convertir temperaturas (Celsius a Fahrenheit)
- 67Descomposición en factores primos
- 68[Aplicado] Construye una herramienta de inventario
Aplanar un slice
En esta lección convertirás un slice anidado en uno simple.
Se recorren las sublistas con dos bucles añadiendo cada elemento al resultado. También sirve append(destino, sublista...) con los puntos suspensivos.
El código de ejemplo aplana una estructura anidada y muestra el resultado.
Esa forma con puntos es la idiomática: resultado = append(resultado, fila...) añade todos los elementos de la fila de una vez, en lugar de uno a uno. Es más corta y más rápida.
Como en la lección de transformar, conviene reservar la capacidad de antemano cuando se conoce el total. Sin eso, append amplía el array subyacente varias veces copiando los datos, y con estructuras grandes eso se nota.
🧪 Este sitio no puede compilar ni ejecutar Go directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
🔗 El mismo tema en otros lenguajes
Mira cómo se escribe lo mismo en otro lenguaje.
