Slicing de Arrays Parte 2
Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 74 de 86.
Swift proporciona una sintaxis abreviada conveniente para realizar particiones (slicing) desde el principio o hasta el final de un arreglo. En lugar de especificar 0 o el último índice de forma explícita, puedes dejar un lado del rango vacío.
Para realizar un corte desde el inicio de un array hasta un índice específico, omita el valor inicial:
let numbers = [10, 20, 30, 40, 50]
let firstThree = numbers[..<3]
print(firstThree) // [10, 20, 30]Del mismo modo, para realizar un slice desde un índice específico hasta el final, omita el valor final:
let numbers = [10, 20, 30, 40, 50]
let fromIndex2 = numbers[2...]
print(fromIndex2) // [30, 40, 50]También puedes usar la versión de rango cerrado para incluir un punto de inicio específico:
let letters = ["a", "b", "c", "d", "e"]
let upToIndex3 = letters[...3]
print(upToIndex3) // ["a", "b", "c", "d"]Estos rangos unilaterales hacen que tu código sea más limpio cuando necesitas los primeros elementos o todo después de un punto determinado. Recuerda envolver el resultado en Array() si necesitas un array normal en lugar de un ArraySlice.
Desafío
FácilEscribe una función splitArray que reciba numbers e index y devuelva todos los elementos desde el índice dado hasta el final del arreglo.
Usa el operador de rango unilateral (...) para segmentar desde el índice especificado hasta el final, y devuelve el resultado como un arreglo normal.
Parámetros:
numbers([Int]): El arreglo a segmentarindex(Int): El índice inicial (inclusive)
Devuelve: Un arreglo que contiene todos los elementos desde el índice dado hasta el final del arreglo ([Int])
Ejemplo: Si numbers es [5, 10, 15, 20, 25, 30] e index es 3, la función debería devolver [20, 25, 30].
Hoja de referencia
Swift proporciona una sintaxis abreviada para segmentar arreglos desde el principio o hasta el final dejando un lado del rango vacío.
Para segmentar desde el inicio hasta un índice específico, omita el valor inicial:
let numbers = [10, 20, 30, 40, 50]
let firstThree = numbers[..<3] // [10, 20, 30]Para segmentar desde un índice específico hasta el final, omita el valor final:
let numbers = [10, 20, 30, 40, 50]
let fromIndex2 = numbers[2...] // [30, 40, 50]Utilice la versión de rango cerrado para incluir un índice final específico:
let letters = ["a", "b", "c", "d", "e"]
let upToIndex3 = letters[...3] // ["a", "b", "c", "d"]Los rangos unilaterales devuelven un ArraySlice. Envuelva el resultado en Array() para convertirlo en un arreglo regular:
let regularArray = Array(numbers[2...])Pruébalo tú mismo
func splitArray(numbers: [Int], index: 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 de móduloAsignación compuestaResumen - Matemáticas simplesOperadores de comparación7E/S Básica
Función PrintInterpolación de StringsEntrada ReadLineConversión de TiposRepaso - Hasta 120Repaso - Verdadero o Falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosResumen - Función SigmaResumen - Función de validaciónValores por defecto13Iterar sobre secuencias
Iterar sobre elementosEl método enumerateIterar sobre cadenas P1Iterar sobre cadenas P22Variables
Let vs VarAnotaciones de tiposNúmerosStringsBooleanosConvenciones de nomenclaturaResumen - 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 bienvenidaObtener la entrada de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz14Arrays Avanzados
Slicing de Arrays Parte 1Slicing de Arrays Parte 2Operadores de SecuenciaEl Método Contains3Opcionales
Qué son los opcionalesDesempaquetado con If LetGuard LetOperador de coalescencia nulaResumen - Desempaquetado seguro6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámica