Type Annotation em Swift

Type Annotation é o recurso que permite declarar explicitamente o tipo de dados que uma variável ou constante deve armazenar. Embora o Swift seja uma linguagem que usa inferência de tipos, ou seja, na maioria das vezes consegue determinar automaticamente o tipo da variável ou constante baseado no valor atribuído, o uso de type annotation permite maior controle e clareza no seu código.

Quando Usar Type Annotation?

O type annotation é especialmente útil em situações em que o valor inicial não fornece informações suficientes sobre o tipo, ou quando você quer garantir que o tipo permaneça consistente, mesmo se o valor inicial for alterado posteriormente. A anotação de tipo é feita utilizando dois pontos : seguido do tipo de dado após o nome da variável ou constante.

Aqui está um exemplo básico:

swift
Copy code
var mensagem: String = "Bem-vindo ao curso de Swift!"
let idade: Int = 25

Neste exemplo:

Vamos analisar alguns casos específicos onde o type annotation é útil.

1. Controle sobre o Tipo de Dados

Ao declarar o tipo de uma variável ou constante, você assegura que ela só poderá armazenar valores daquele tipo específico, ajudando a prevenir erros inesperados.

Por exemplo:

swift
Copy code
var altura: Double = 1.75

No exemplo acima, o valor de altura é declarado explicitamente como um Double, garantindo que ela armazenará um valor decimal e não um valor inteiro.

2. Quando a Inferência Não é Clara

Imagine que você deseja criar uma constante para armazenar um valor numérico que, mais tarde, precisará ser usado em cálculos que exigem maior precisão. Por padrão, o Swift poderia inferir que o número é um Int, o que não é ideal para cálculos precisos. Você pode resolver isso usando type annotation.

Exemplo:

swift
Copy code
let numero = 42         // Inferido como Int
let precisao: Double = 42  // Explicitamente declarado como Double

Aqui, numero é inferido como Int, enquanto precisao é explicitamente declarado como Double, garantindo que ele possa ser usado para operações que precisam de valores decimais.