Slicing de Slices/Arrays existentes
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 80 de 109.
Puedes crear un nuevo slice a partir de un slice o array existente especificando un rango con la sintaxis [start:end].
Crea un slice de números:
numbers := []int{10, 20, 30, 40, 50}
fmt.Println("Original:", numbers)Extrae elementos desde el índice 1 al 3 (excluyendo el 3):
slice1 := numbers[1:3]
fmt.Println("Slice [1:3]:", slice1)Resultado:
Original: [10 20 30 40 50]
Slice [1:3]: [20 30]También puedes omitir el índice de inicio o de fin:
slice2 := numbers[:2] // Desde el inicio hasta el índice 2 (excluyendo el 2)
slice3 := numbers[3:] // Desde el índice 3 hasta el final
fmt.Println("Slice [:2]:", slice2)
fmt.Println("Slice [3:]:", slice3)Resultado:
Slice [:2]: [10 20]
Slice [3:]: [40 50]Desafío
PrincipianteEn este desafío, practicarás el rebanado (slicing) de un slice existente para crear nuevos sub-slices. Tienes un slice de frutas y necesitas crear dos nuevos slices a partir de él:
- Un slice que contenga solo las primeras tres frutas
- Un slice que contenga solo las últimas dos frutas
Luego, imprime ambos slices nuevos para verificar tu trabajo.
Hoja de referencia
Crea un nuevo slice a partir de un slice o array existente utilizando la sintaxis [start:end]:
numbers := []int{10, 20, 30, 40, 50}
slice1 := numbers[1:3] // Elementos desde el índice 1 al 3 (excluyendo el 3)
fmt.Println(slice1) // [20 30]Puedes omitir el índice de inicio o de fin:
slice2 := numbers[:2] // Desde el inicio hasta el índice 2 (excluyendo el 2)
slice3 := numbers[3:] // Desde el índice 3 hasta el final
fmt.Println(slice2) // [10 20]
fmt.Println(slice3) // [40 50]Pruébalo tú mismo
package main
import "fmt"
func main() {
// Aquí está nuestra rebanada (slice) original de frutas
fruits := []string{"apple", "banana", "orange", "grape", "kiwi"}
// TODO: Crea una nueva rebanada llamada 'firstThree' que contenga solo las tres primeras frutas
// TODO: Crea una nueva rebanada llamada 'lastTwo' que contenga solo las dos últimas frutas
// Imprimir los resultados
fmt.Println("First three fruits:", firstThree)
fmt.Println("Last two fruits:", lastTwo)
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparación - Parte 1Operadores de comparación - Parte 2Operador lógico ANDOperador lógico OROperador lógico NOTConceptos básicos de precedencia de operadoresResumen: Realizar comparaciones7Flujo de control: Bucles
Explicación del bucle `for`Bucle `for` - BásicoBucle `for` - Solo condiciónLa palabra clave `break`La palabra clave `continue`Bucles anidadosResumen - Repetición de acciones2Variables y tipos de datos básicos
¿Qué es una variable?Inferencia de tipos con `:=`Enteros (int)Números de punto flotanteBooleanosStringsValores ceroConstantesConvenciones de nomenclaturaResumen - Variables y tipos5Entrada y salida básica
Salida con formatoVerbos de formatoImpresión de tiposObtener entrada básica del usuarioResumen: Entrada y salida8Funciones
Comprendiendo las funcionesDeclaración de una funciónLlamada a funcionesParámetros de funciónRetorno de un solo valorRetorno de múltiples valoresValores de retorno con nombreConceptos básicos del alcance de las funcionesResumen: Creando código reutilizable11Tipos compuestos: Slices
Introducción a los SlicesDeclaración de literales de SliceCreación de Slices con `make`Longitud vs. Capacidad de un SliceAcceso a los elementos del SliceAñadir elementosSlicing de Slices/Arrays existentesIterar sobre SlicesCopiar SlicesResumen - Listas dinámicas3Operadores básicos
Operadores aritméticosOperador de divisiónEl operador móduloOperador de asignaciónOperadores de asignación compuestaIncremento y decrementoResumen - Cálculos6Flujo de control: Condicionales
La sentencia `if`La palabra clave `else`La palabra clave `else if`Sombreado de variables en `if`Inicialización de variablesLa sentencia `switch``switch` con expresiones`switch` sin expresiónLa palabra clave `fallthrough`Resumen: Toma de decisiones