2
respostas

[Dúvida] Declaração de forma implícita

Oi, pessoal!

Minha duvida surgiu no momento em que fui fazer a declaração da variável "turnoEmQueEstuda", pois estou atribuindo o caractere "D", mas o Swift está declarando a variável com o tipo String, mesmo que eu esteja atribuindo apenas um caractere.

Screenshot mostrando a variável turnoEmQueEstuda sendo declarada como String, porém contendo apenas um caractere.

Na minha visão, o Swift deveria salvar como "Character" ao invés de "String". Esse é um comportamento padrão do Swift?

2 respostas

Olá, Amandha!

Realmente, o Swift tem um comportamento padrão de inferência de tipos que pode parecer estranho em alguns casos. No seu exemplo, como você atribuiu um caractere à variável "turnoEmQueEstuda", o Swift poderia inferir que o tipo da variável é "Character". No entanto, o Swift opta por inferir o tipo "String" quando você atribui um valor entre aspas, mesmo que seja apenas um caractere.

Isso acontece porque o Swift considera que, em muitos casos, é mais conveniente trabalhar com strings do que com caracteres isolados. Por exemplo, se você quiser concatenar duas variáveis, é mais fácil fazer isso com strings do que com caracteres.

Mas você ainda pode trabalhar com caracteres em Swift, se você quiser declarar uma variável como "Character", basta inferir o tipo da variável:

var primeiraLetra: Character = "D"

Assim, o Swift vai entender que o tipo da variável é "Character".

Qualquer coisa estarei à disposição :)

Faz muito sentido! Obrigada pela explicação, Matheus! :)