Como Funciona a Inferência de Tipos
Veja como Swift deduz os tipos a partir do contexto.
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))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
- Como Funciona a Inferência de Tipos
- Quando Adicionar Anotações Explícitas
- Inferência com Literais
- Inferência em Closures