Operadores de Secuencia
Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 75 de 86.
Swift proporciona propiedades y métodos integrados útiles que te permiten recopilar información sobre arrays rápidamente sin escribir bucles. Estos operadores de secuencia te ayudan a realizar cálculos comunes con un código mínimo.
La propiedad count devuelve el número de elementos en un array:
let scores = [85, 92, 78, 90]
print(scores.count) // 4Para arreglos numéricos, Swift ofrece métodos para encontrar los valores más pequeños y más grandes. Los métodos min() y max() devuelven opcionales ya que un arreglo vacío no tiene mínimo ni máximo:
let temperatures = [72, 68, 75, 80, 65]
if let lowest = temperatures.min() {
print(lowest) // 65
}
if let highest = temperatures.max() {
print(highest) // 80
}Para calcular el total de todos los elementos, utiliza el método reduce. Este combina todos los valores a partir de un valor inicial:
let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total) // 60El 0 es el valor inicial, y + le indica a Swift que sume cada elemento al total acumulado. Combinando estos operadores, puedes calcular fácilmente un promedio:
let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average) // 86Desafío
FácilEscribe una función analyzeScores que reciba scores y devuelva una cadena de resumen con estadísticas sobre el arreglo.
Utiliza operadores de secuencia para calcular el conteo, el mínimo, el máximo y el promedio de las puntuaciones, luego dales formato en una única cadena de resumen.
Lógica:
- Obtén el conteo total de elementos usando
count - Encuentra el valor mínimo usando
min() - Encuentra el valor máximo usando
max() - Calcula la suma usando
reduce(0, +)y divídela por el conteo para obtener el promedio - Devuelve una cadena formateada con todas las estadísticas
Parámetros:
scores([Int]): Un arreglo de puntuaciones enteras (se garantiza que tiene al menos un elemento)
Devuelve: Una cadena formateada que contiene las estadísticas (String). Formato: "Count: X, Min: X, Max: X, Avg: X"
Ejemplo: Si scores es [85, 90, 78, 92], la función debería devolver "Count: 4, Min: 78, Max: 92, Avg: 86".
Nota: El promedio debe calcularse utilizando división entera (sin decimales).
Hoja de referencia
Swift proporciona propiedades y métodos integrados para trabajar con arreglos sin escribir bucles.
La propiedad count devuelve el número de elementos:
let scores = [85, 92, 78, 90]
print(scores.count) // 4Los métodos min() y max() encuentran los valores más pequeños y más grandes. Devuelven opcionales ya que los arreglos vacíos no tienen mínimo ni máximo:
let temperatures = [72, 68, 75, 80, 65]
if let lowest = temperatures.min() {
print(lowest) // 65
}
if let highest = temperatures.max() {
print(highest) // 80
}El método reduce calcula el total combinando todos los valores comenzando desde un valor inicial:
let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total) // 60Calcula un promedio combinando reduce con count:
let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average) // 86Pruébalo tú mismo
func analyzeScores(scores: [Int]) -> String {
// 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