Slicing de Slices/Arrays existentes
Parte de la sección Fundamentos del Journey de GO de Coddy. Lección 80 de 109.
Puedes crear una nueva porción a partir de una porción o un arreglo existente especificando un rango con la sintaxis [start:end].
Crea un segmento de números:
numbers := []int{10, 20, 30, 40, 50}
fmt.Println("Original:", numbers)Extrae los elementos desde el índice 1 hasta el 3 (sin incluir 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 inicial o final:
slice2 := numbers[:2] // Desde el inicio hasta el índice 2 (sin incluir 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 cómo dividir una porción existente para crear nuevas subporciones. Tienes una porción de frutas y debes crear dos porciones nuevas a partir de ella:
- Una porción que contenga solo las tres primeras frutas
- Una porción que contenga solo las dos últimas frutas
Después, imprime ambas porciones nuevas para verificar tu trabajo.
Pruébalo tú mismo
package main
import "fmt"
func main() {
// Aquí está nuestro slice original de frutas
fruits := []string{"apple", "banana", "orange", "grape", "kiwi"}
// TODO: Crea un nuevo slice llamado 'firstThree' que contenga solo las tres primeras frutas
// TODO: Crea un nuevo slice llamado 'lastTwo' que contenga solo las dos últimas frutas
// Imprime 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 decisionesPractica por tu cuenta: Compilador de Go online