0Pricing
Swift Academy · Aula

Funções de ordem superior: map, flatMap, compactMap

Transforme sequências sem mutação usando as funções de coleções do Swift.

Funções de ordem superior: map, flatMap, compactMap é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.

Boas-vindas

Funções de ordem superior recebem ou retornam outras funções. A biblioteca de coleções do Swift é baseada nelas: `map`, `flatMap`, `compactMap`, `filter`, `reduce`.

map — Transformar cada elemento

```swift let nums = [1,2,3,4] let squared = nums.map { $0 * $0 } // [1,4,9,16] let strs = nums.map(String.init) // ["1","2","3","4"] ```

flatMap — Transformar e achatar

```swift let words = ["hello world","foo bar"] let all = words.flatMap { $0.split(separator:" ").map(String.init) } // ["hello","world","foo","bar"] ```

compactMap — Transformar e descartar nulos

```swift let mixed = ["1","two","3"] let nums = mixed.compactMap { Int($0) } // [1,3] ```

Passando referências de funções

```swift func double(_ n: Int) -> Int { n * 2 } let result = [1,2,3].map(double) // [2,4,6] ``` Referências de funções podem substituir literais de fechamento.

Encadeando funções de ordem superior

```swift let total = (1...100) .filter { $0 % 2 == 0 } .map { $0 * $0 } .reduce(0, +) // sum of squares of even numbers 1-100 ```

flatMap em opcionais

```swift let maybeStr: String? = "42" let maybeInt = maybeStr.flatMap { Int($0) } // Optional(42) let nil2: String? = nil let also = nil2.flatMap { Int($0) } // nil ```

Função de ordem superior personalizada

```swift func applyTwice(_ f: (T) -> T, _ value: T) -> T { f(f(value)) } print(applyTwice({ $0 * 2 }, 3)) // 12 ```

sorted(by:) como HOF

```swift let words = ["banana","apple","cherry"] let sorted = words.sorted { $0.count < $1.count } // ["apple","banana","cherry"] ``` `sorted(by:)` aceita uma função comparadora.

Prática: processando dados de usuários

```swift struct User { var name: String; var score: Int } let users = [User(name:"A",score:80),User(name:"B",score:45),User(name:"C",score:92)] let topNames = users.filter { $0.score >= 80 }.map { $0.name }.sorted() // ["A","C"] ```

Verificação rápida

O que `compactMap` faz que `map` comum não faz?

Recapitulação

Principais conclusões: • `map` — transforma cada elemento • `flatMap` — transforma e achata resultados aninhados • `compactMap` — transforma e descarta nulos • Passe referências de funções diretamente: `.map(String.init)` • Encadeie-as para criar cadeias de processamento de dados limpas Próximo: composição de funções e cadeias de processamento.

Perguntas Frequentes

A aula “Funções de ordem superior: map, flatMap, compactMap” é grátis?

Sim — o texto completo de “Funções de ordem superior: map, flatMap, compactMap” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “Funções de ordem superior: map, flatMap, compactMap”?

Transforme sequências sem mutação usando as funções de coleções do Swift. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Funções de ordem superior: map, flatMap, compactMap”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Funções puras e design sem efeitos colaterais
  2. Funções de ordem superior: map, flatMap, compactMap
  3. Composição de funções e pipelines
  4. Sequências preguiçosas para maior eficiência
← Voltar para Swift Academy