Map
Parte da seção Lógica e Fluxo do Journey de Swift da Coddy. Lição 23 de 56.
map recebe um closure e o aplica a cada elemento, retornando um novo array com os resultados. O novo array tem o mesmo comprimento que o original.
let nums = [1, 2, 3, 4]
let doubled = nums.map { $0 * 2 }
print(doubled) // [2, 4, 6, 8]$0 é uma abreviação para o primeiro parâmetro da closure. A forma mais longa explicita o nome do parâmetro e o tipo de retorno:
let doubled = nums.map { (n: Int) -> Int in
return n * 2
}map também pode alterar o tipo dos elementos. Aplicar map a um [Int] por meio de um closure que retorna String resulta em um [String]:
let labels = nums.map { "#\($0)" }
print(labels) // ["#1", "#2", "#3", "#4"]Desafio
FácilLeia uma única linha de entrada: uma lista de inteiros separados por vírgulas (temperaturas em Fahrenheit).
Converta cada um para Celsius usando a fórmula C = (F - 32) * 5 / 9 em aritmética inteira (trunque em direção a zero, sem casas decimais). Imprima, em linhas separadas:
- As temperaturas em Celsius, unidas por
, - Um rótulo por temperatura com o prefixo
F=<f> C=<c>, unidos por;
Use map para ambas as linhas.
Para a entrada 32,212,98,0, a saída é:
0,100,36,-17
F=32 C=0;F=212 C=100;F=98 C=36;F=0 C=-17Experimente você mesmo
let f = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: linha 1 = celsius unidos com ","
// TODO: linha 2 = rótulos "F=<f> C=<c>" unidos com ";"
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Strings a Fundo
Contagem e ÍndicesCase e TrimBusca em StringsDivisão e JunçãoSubstituindo SubstringsRecapitulação - Verificação de Nome de Usuário4Conjuntos
Criando ConjuntosUnião e InterseçãoSubtração e Diferença SimétricaSubconjunto e SuperconjuntoRecapitulação - Filtro de Tags7Projeto - Monitor de Hábitos
Visão Geral do ProjetoMarcar como Concluído10Projeto - Mecanismo de Quiz
Visão Geral do ProjetoFazer Perguntas2Intervalos e Strides
Fechado vs Meio-AbertoStrideMétodos de IntervaloIntervalos no SwitchRecapitulação - Grade de Calendário5Funções de Ordem Superior Parte 1
MapFilterReduceEncadeando map, filter, reduceRecapitulação - Estatísticas de PalavrasPratique por conta própria: Playground de Swift