Segmentación de arrays, parte 1
Parte de la sección Fundamentos del Journey de Swift de Coddy. Lección 73 de 86.
A veces no necesitas un array completo, sino solo una parte de él. Swift facilita extraer un subconjunto de elementos mediante el rebanado de arrays con operadores de rango.
Para obtener un slice, usas un rango dentro de los corchetes de subíndice. El enfoque más común usa el operador de rango semiabierto (..<), que incluye el índice de inicio, pero excluye el índice final:
let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice) // [20, 30, 40]Aquí, 1..<4 nos proporciona los elementos en los índices 1, 2 y 3, pero no en el índice 4. Esto resulta útil cuando sabes exactamente dónde quieres detenerte.
Si quieres incluir el índice final, usa el operador de rango cerrado (...):
let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice) // ["b", "c", "d"]Un detalle importante: el resultado de usar slice es un ArraySlice, no un Array normal. Si necesitas un array verdadero, envuélvelo con Array():
let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced) // [1, 2, 3]Desafío
FácilEscribe una función getMiddleElements que tome numbers, start y end, y devuelva un slice del arreglo desde el índice inicial hasta (sin incluirlo) el índice final.
Usa el operador de rango semiabierto (..<) para extraer la parte especificada del arreglo y devolverla como un arreglo normal.
Parámetros:
numbers([Int]): El arreglo que se va a dividirstart(Int): El índice inicial (inclusivo)end(Int): El índice final (exclusivo)
Devuelve: Un arreglo que contiene los elementos desde el índice inicial hasta (sin incluirlo) el índice final ([Int])
Ejemplo: Si numbers es [10, 20, 30, 40, 50, 60], start es 1 y end es 4, la función debería devolver [20, 30, 40].
Pruébalo tú mismo
func getMiddleElements(numbers: [Int], start: Int, end: Int) -> [Int] {
// Escribe el código aquí
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores, parte 1
Operadores aritméticosOperador móduloAsignación compuestaRepaso: matemáticas simplesOperadores de comparación7Entrada/salida básica
Función printInterpolación de cadenasEntrada con ReadLineConversión de tiposRepaso: hasta 120Repaso: verdadero o falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosRepaso: función SigmaRepaso: función de validaciónValores predeterminados13Iteración sobre secuencias
Iteración sobre elementosEl método enumeradoIteración sobre cadenas P1Iteración sobre cadenas P22Variables
Let vs VarAnotaciones de tipoNúmerosCadenaBooleanoConvenciones de nomenclaturaRepaso: inicializar variables5Operadores, parte 2
Operadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simpleOperadores lógicos, parte 3Operador ternario8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtención de datos11FizzBuzz con un giro
Descripción del juegoLa función FizzBuzz14Arrays avanzados
Segmentación de arrays, parte 1Segmentación de arrays, parte 2Operadores de secuenciasEl método Contains3Opcionales
Qué son los opcionalesDesenvolver con If LetGuard LetOperador de coalescencia nilRepaso: desenvoltura segura6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámicaPractica por tu cuenta: Playground de Swift