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).
Experimente 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 móduloAtribuição compostaRecapitulação - Matemática simplesOperadores de comparação7Entrada e Saída Básicas
Função printInterpolação de stringsEntrada com readlineConversão de tiposRecapitulação - Até 120Recapitulação - Verdadeiro ou falso10Funções
Declare uma funçãoParâmetros e argumentosValores de retornoRótulos de argumentosRevisão - função SigmaRevisão - função de validaçãoValores padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeradoIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de tipoNúmerosStringBooleanoConvenções de nomenclaturaRecapitulação - Inicializar variáveis5Operadores — Parte 2
Operadores lógicos — Parte 1Operadores lógicos — Parte 2Revisão — Lógica simplesOperadores lógicos — Parte 3Operador ternário8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo Dados de Entrada11FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz14Arrays Avançados
Fatiamento de Arrays - Parte 1Fatiamento de Arrays - Parte 2Operadores de SequênciaO Método Contains3Optionais
O que são OptionaisDesembrulhando com If LetGuard LetOperador de Coalescência de NilRecapitulação - Desembrulhamento Seguro6Tomada de Decisões
Instrução IfIf - ElseRecapitulação - Calculadora SimplesInstrução SwitchSwitch com Intervalos9Laços de Repetição
Laço For-InLaço WhileLaço Repeat-WhileBreakContinueRevisão - FatorialIntervalos em LaçosLaço AninhadoRevisão - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRevisão - Lista de ProdutosRevisão - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do ProgramaPratique por conta própria: Playground de Swift