Operadores de Sequência
Parte da seção Fundamentos do Journey de Swift da Coddy — lição 75 de 86.
O Swift fornece propriedades e métodos integrados úteis que permitem coletar informações sobre arrays rapidamente sem escrever loops. Esses operadores de sequência ajudam você a realizar cálculos comuns com o mínimo de código.
A propriedade count retorna o número de elementos em um array:
let scores = [85, 92, 78, 90]
print(scores.count) // 4Para arrays numéricos, o Swift oferece métodos para encontrar os valores mínimo e máximo. Os métodos min() e max() retornam opcionais, já que um array vazio não possui um valor mínimo ou 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 o total de todos os elementos, use o método reduce. Ele combina todos os valores começando a partir de um valor inicial:
let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total) // 60O 0 é o valor inicial, e + diz ao Swift para adicionar cada elemento ao total acumulado. Combinando esses operadores, você pode facilmente calcular uma média:
let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average) // 86Desafio
FácilEscreva uma função analyzeScores que recebe scores e retorna uma string de resumo com estatísticas sobre o array.
Use operadores de sequência para calcular a contagem, o mínimo, o máximo e a média das pontuações e, em seguida, formate-os em uma única string de resumo.
Lógica:
- Obtenha a contagem total de elementos usando
count - Encontre o valor mínimo usando
min() - Encontre o valor máximo usando
max() - Calcule a soma usando
reduce(0, +)e divida pela contagem para obter a média - Retorne uma string formatada com todas as estatísticas
Parâmetros:
scores([Int]): Um array de pontuações inteiras (garantido ter pelo menos um elemento)
Retorno: Uma string formatada contendo as estatísticas (String). Formato: "Count: X, Min: X, Max: X, Avg: X"
Exemplo: Se scores for [85, 90, 78, 92], a função deve retornar "Count: 4, Min: 78, Max: 92, Avg: 86".
Nota: A média deve ser calculada usando divisão inteira (sem casas decimais).
Folha de consulta
Swift fornece propriedades e métodos integrados para trabalhar com arrays sem escrever loops.
A propriedade count retorna o número de elementos:
let scores = [85, 92, 78, 90]
print(scores.count) // 4Os métodos min() e max() encontram os valores menor e maior. Eles retornam opcionais, já que arrays vazios não possuem mínimo ou 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
}O método reduce calcula o total combinando todos os valores a partir de um valor inicial:
let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total) // 60Calcule uma média combinando reduce com count:
let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average) // 86Experimente você mesmo
func analyzeScores(scores: [Int]) -> String {
// Escreva o código aqui
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 1
Operadores AritméticosOperador de MóduloAtribuição CompostaRecapitulação - Matemática SimplesOperadores de Comparação7IO Básico
Função PrintInterpolação de StringsEntrada ReadLineConversão de TiposRecapitulação - Até 120Recapitulação - Verdadeiro ou Falso10Funções
Declarar uma FunçãoParâmetros e ArgumentosValores de RetornoRótulos de ArgumentosRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores Padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeratedIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de TipoNúmerosStringBooleanosConvenções de NomenclaturaRecapitulação - Inicializar Variáveis5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operador Ternário8Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada11FizzBuzz com um Diferencial
Visão Geral do JogoA Função FizzBuzz14Arrays Avançados
Fatiamento de Arrays Parte 1Fatiamento de Arrays Parte 2Operadores de SequênciaO Método Contains3Opcionais
O que são OpcionaisDesembrulhando com If LetGuard LetOperador de Coalescência NulaRecapitulação - Desembrulho Seguro6Tomada de Decisão
Estrutura IfIf - ElseRecapitulação - Calculadora SimplesEstrutura SwitchSwitch com Intervalos9Loops
Loop For-InLoop WhileLoop Repeat-WhileBreakContinueRecapitulação - FatorialIntervalos em LoopsLoop AninhadoRecapitulação - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRecapitulação - Lista de ProdutosRecapitulação - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa