Swift Academy · Aula

Como Funciona a Inferência de Tipos

Veja como Swift deduz os tipos a partir do contexto.

Aula 1 de 413 etapas

Como Funciona a Inferência de Tipos é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 1 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.

O que é inferência de tipos

Swift pode deduzir o tipo de um valor a partir do contexto de uma expressão. Muitas vezes, não é necessário escrever o tipo explicitamente.

let count = 42
let name = "Swift"
print(type(of: count))
print(type(of: name))

Inferido a partir de literais

Um literal inteiro é inferido como Int, um literal decimal como Double e um literal entre aspas como String.

let a = 10
let b = 3.14
let c = "hello"
print(type(of: a), type(of: b), type(of: c))

Inferido a partir do inicializador

Quando chama um inicializador, o tipo do resultado orienta a inferência da variável.

let pi = Double.pi
let flag = Bool(true)
print(type(of: pi))
print(type(of: flag))

Inferido a partir do retorno da função

Uma variável atribuída a partir de uma chamada de função assume o tipo de retorno da função.

func makeGreeting() -> String {
    return "Hi"
}
let g = makeGreeting()
print(type(of: g))

Inferência em coleções

Literais de Array e de dicionários inferem seus tipos de elementos a partir dos valores contidos neles.

let nums = [1, 2, 3]
let pairs = ["a": 1, "b": 2]
print(type(of: nums))
print(type(of: pairs))

Inferência bidirecional

Swift faz inferências nas duas direções: do valor para a variável e de um tipo declarado de volta para um literal.

let x = 5            // Int inferred from literal
let y: Double = 5   // literal adapts to Double
print(type(of: x), type(of: y))

Inferência entre expressões

O compilador resolve os tipos de uma expressão inteira em conjunto, escolhendo tipos que tornam todas as operações válidas.

let result = 2 + 3 * 4
print(result)
print(type(of: result))

A inferência reduz o ruído

A inferência mantém o código limpo. Escrever let names: [String] = [...] é redundante quando o literal já especifica String.

let names = ["Ada", "Bob", "Cleo"]
print(names.count)

Quando a inferência falha

Se o compilador não conseguir encontrar um único tipo, ocorrerá um erro e será necessário anotar o tipo. Coleções empty são um caso clássico.

let empty: [Int] = []
print(empty.isEmpty)

A inferência é estática

A inferência acontece durante a compilação. Depois de inferido, o tipo é fixo; Swift não tem tipagem dinâmica.

var n = 10
// n = "text" // would be a compile error
n = 20
print(n)

Inferência e desempenho

A inferência não tem custo durante a execução. O compilador resolve os tipos antes de produzir o binário, portanto o código com tipos inferidos é executado exatamente com a mesma rapidez que o código anotado.

let total = (1...100).reduce(0, +)
print(total)

Verificação rápida

Teste sua compreensão da inferência.

Recapitulação

A inferência de tipos permite que Swift deduza tipos a partir de literais, inicializadores, valores de retorno e do contexto ao redor durante a compilação. Ela reduz o ruído sem custo durante a execução, mas falha quando não é possível determinar um único tipo, como no caso de coleções empty.

let a = 1
let b = 2.0
let c = "x"
print(type(of: a), type(of: b), type(of: c))
Grátis para começar

Aprenda Swift com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
122
Aulas
409

Perguntas Frequentes

A aula “Como Funciona a Inferência de Tipos” é grátis?

Sim — o texto completo de “Como Funciona a Inferência de Tipos” é 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 “Como Funciona a Inferência de Tipos”?

Veja como Swift deduz os tipos a partir do contexto. 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 1 de 4.

Quanto tempo leva a aula “Como Funciona a Inferência de Tipos”?

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. Como Funciona a Inferência de Tipos
  2. Quando Adicionar Anotações Explícitas
  3. Inferência com Literais
  4. Inferência em Closures
← Voltar para Swift Academy