Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Swift
Code

Swift from Scratch: Variáveis e constantes

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called Swift From Scratch.
Swift From Scratch: Introduction
Swift From Scratch: Collections and Tuples

Portuguese (Português) translation by David Batista (you can also view the original English article)

No primeiro artigo da série Swift from Scratch, você aprendeu sobre os playgrounds do Xcode e escreveu suas primeiras linhas em Swift. Neste artigo, vamos começar a aprender os fundamentos da linguagem de programação Swift explorando variáveis e tipagem. Também daremos uma olhada mais atenta às constantes e porque você é incentivado a usá-los tanto quanto possível.

Nas próximas partes desta série, nos vamos fazer uso dos playgrounds do Xcode para aprender os fundamentos da linguagem de programação Swift. Como vimos no artigo anterior, playgrounds são fundamentais para ensinar e aprender Swift.

Vamos começar criando um novo playground para este tutorial e eu encorajo você a ir mais longe. Usar a linguagem é uma ótima maneira de aprender sua sintaxe e entender seus conceitos.

Abra o Xcode 6+ e crie um novo playground selecionando New > Playground... no menu File do Xcode. Entre com um nome para o playground, selecione iOS em Platform e clique em Next. Informe ao Xcode onde você deseja salvar o seu playground e clique em Create.

Limpe o conteúdo do seu playground para que possamos começar do zero. Já fizemos uso de variáveis no tutorial anterior, mas agora vamos olhar mais de perto os detalhes essenciais para compreender melhor o que o Swift está fazendo nos bastidores.

1. Variáveis

Declarando variáveis

Em Swift, nos usamos a palavra-chave var para declarar variáveis. Apesar de ser semelhante a forma como as variáveis são declaradas em outras linguagens de programação, aconselho fortemente a não pensar em outras linguagens de programação quando usamos a palavra-chave var em Swift. Existem algumas diferenças importantes.

A palavra-chave var é a única maneira de declarar uma variável em Swift. A mais comum e concisa forma de utilizar o var é declarar uma variável e atribuir um valor a ela.

Lembre-se que nós não terminamos esta linha de código com um ponto e vírgula. Apesar de o ponto e vírgula ser opcional em Swift, a melhor prática é não usar o ponto e vírgula se não for necessário.

Você também deve ter notado que não especificamos um tipo quando declaramos a variável street. Isso nos leva a uma característica chave de Swift, inferência de tipo.

Inferência de tipo

Na instrução acima declaramos a variável street e atribuímos o valor 5th Avenue para ela. Se você é novo em Swift ou você já usou JavaScript ou PHP, você pode estar pensando que o Swift é sem tipagem ou uma linguagem fracamente tipada, mas isso está longe da verdade. Deixe-me relembrar que Swift é uma linguagem fortemente tipada. Segurança de tipo é um dos pilares da linguagem.

Nós estamos apenas começando e Swift já nos mostra um pouco de sua magia. Mesmo que a declaração acima não especifique explicitamente um tipo, a variável de street é do tipo String. Esta é a inferência de tipo do Swift em ação. O valor que atribuímos a street é uma string. Swift é inteligente o suficiente para ver e implicitamente definir o tipo String para a variável  street.

A instrução a seguir nos dá o mesmo resultado. A diferença é que nos explicitamente definimos o tipo da variável. A instrução abaixo literalmente informa que street é do tipo String

O Swift requer que você explicitamente ou implicitamente defina o tipo das variáveis ou constantes. Se você não fizer, o Swift irá informar que há um erro. Adicione a seguinte linha no seu playground, para você ver o que quero dizer.

Esta instrução seria perfeitamente valida em PHP ou em JavaScript. Em Swift, porém, ela não é valida. A razão é simples. Mesmo que declaramos uma variável usando a palavra-chave var, não especificamos o tipo da variável. O Swift é incapaz de inferir o tipo se nós não atribuirmos um valor à variável. Se você clicar no erro, o Xcode irá te falar qual é a instrução errada.

Você pode facilmente corrigir este erro, fazendo uma das duas coisas. Nós podemos atribuir um valor para a variável como fizemos anteriormente ou podemos explicitamente atribuir um tipo para a variável number. Definindo explicitamente o tipo para number, e o erro desaparece. A linha de código abaixo define que number é do tipo String.

Mudando o tipo

Como você pode ver abaixo, atribuir novos valores para a street e number é simples e sem surpresas.

Não seria mais fácil atribuir o número 10 para a variável number. Não há nenhuma necessidade de armazenar o número da rua como uma string. Vamos ver o que acontece se fizermos.

Se tentarmos atribuir um número inteiro a number, o Xcode mostrará outro erro para nós. Infelizmente, desta vez a mensagem de erro não é muito útil. A razão pela qual o Xcode informa um erro é que tentamos atribuir um número inteiro para uma variável do tipo String. Isto não é um problema em linguagens fracamente tipada, mas é em Swift.

O Swift é uma linguagem fortemente tipada em que cada variável tem um tipo específico e o tipo não pode ser alterado. Leia esta frase novamente, porque este é um conceito importante em Swift.

Para se livrar do erro, precisamos declarar a variável number como Int. Dê uma olhada no exemplo abaixo.

Resumo

É importante que você mantenha o seguinte em mente. Você pode declarar uma variável com a palavra-chave var mas não precisa declarar de formar explicita o tipo da variável. Porém, lembre-se que toda variável - e constante - deve ter um tipo em Swift. Se o Swift não pode inferir o tipo, então ele vai reclamar. Toda variável tem um tipo e este tipo não pode ser mudado.

2. Constantes

Constantes são similares as variáveis em termos de tipagem. A unica diferença é que o valor de uma constante não pode ser alterado uma vez que seja atribuído um valor a ela. O valor de uma constante é ... bem ... constante.

Declarando constantes

Para declarar uma constante, você usa a palavra-chave let. Dê uma olhada no seguinte exemplo em que nós declaramos street como uma constante em vez de uma variável.

Se alterarmos apenas a primeira linha, substituindo var por let, o Xcode retornar um erro por razões obvias. Tentar mudar o valor de uma constante não é permitido em Swift. Remova ou comente a linha em que nos tentamos atribuir um novo valor para street para se livrar do erro.

Usando constantes

Eu espero que você concorde que declarar constantes é muito fácil em Swift. Não é necessário nenhuma palavra-chave exótica ou uma sintaxe complexa. Declarar constantes é tão fácil quanto declarar variáveis e isto não é uma coincidência.

O uso de constantes é encorajado em Swift. Se um valor não vai mudar ou você não espera que mude, então deve ser uma constante. Isto tem uma série de benefícios. Um dos benefícios é a performance, mas o mais importante benefício é a segurança. Ao usar constantes sempre que possível, você adiciona restrições em seu código e o resultado é um código seguro.

3. Tipos de dados

A maioria das linguagens de programação têm uma ampla gama de tipos para armazenar strings, inteiros, floats, etc. Os tipos disponíveis em Swift são limitados. Dê uma olhada na lista a seguir.

  • Int
  • Float
  • Double
  • String
  • Character
  • Bool

É importante entender que os tipos acima não são tipos básicos ou primitivos. Eles são chamados de tipos, que são implementados por Swift usando estruturas. Iremos explorar estruturas com mais detalhes posteriormente nesta série, mas é bom saber que o que vimos até agora não são como os tipos primitivos, que você pode ter usado em, por exemplo, Objective-C.

Existem muitos outros tipos de dados em Swift, tais como tuplas, arrays e dicionários, e vamos explora-los um pouco mais tarde nesta série.

4. Conversão de tipo

Há mais um tema que precisamos discutir, conversão de tipo. Dê uma olhada no seguinte trecho de Objective-C. Este bloco de código imprimirá o valor 314.000000 no console.

O Objective-C converte implicitamente em tempo de execução a variável a para um valor em ponto flutuante e multiplica com b. Vamos reescrever o trecho de código acima usando Swift.

Ignore a função println por enquanto. Primeiro quero focar a multiplicação de a e b. O Swift inferirá o tipo de a, um Int e b, um Double. No entanto, quando ele tenta multiplicar a e b, ele percebe que não são do mesmo tipo. Isto pode não parecer um problema para você, mas é para o Swift. O Swift não sabe qual tipo deve ser o resultado desta multiplicação. Deve ser um número inteiro ou um double.

Para corrigir esse problema, precisamos ter certeza de que ambos os operandos da multiplicação são do mesmo tipo, porque o Swift não converte implicitamente os operandos para nós. Há uma série de funções auxiliares globalmente disponíveis que faz esta tarefa trivial. No exemplo atualizado abaixo, chamamos Double sobre a variável de a para converter seu valor para double. Isto resolve o erro.

Observe que o tipo de a não mudou. Mesmo que o trecho de código acima possa parecer do tipo casting, não é a mesma coisa. A função Double pega o valor de a, retorna o valor como um Double e o resultado é usado na multiplicação com b. O resultado é do tipo Double.

O que você precisa se lembrar é que Swift é diferente de C e Objective-C. Ela não converte implicitamente os valores das variáveis e constantes. Este é outro conceito importante a entender.

5. Linha de impressão

No trecho de código anterior, nós invocarmos nossa primeira função, println. A função println é muito similar a NSLog do Objective-C, ela imprime algo e acrescenta uma nova linha. A biblioteca padrão da Swift também inclui uma função de print, que faz a mesma coisa que a função println, mas não acrescentar uma nova linha.

Para imprimir alguma coisa, basta invocar println e passar um parâmetro. Que pode ser uma variável, uma constante, uma expressão ou uma literal. Dê uma olhada nos exemplos a seguir.

Também é possível usar interpolação de string para combinar variáveis, constantes, expressões e literais. Interpolação de strings é muito fácil em Swift, basta inserir as variáveis, constantes, expressões ou literais em \(). Fácil como uma torta.

Aprenda mais em nosso Curso de Programação em Swift

Se você está interessado em elevar seu aprendizado em Swift para o próximo nível, você pode dar uma olhada no nosso curso completo de desenvolvimento em Swift.

Esta aula de exemplo entra um pouco mais detalhadamente sobre as variáveis e constantes e como alocar memória para armazenar diferentes tipos de dados.

Conclusão

É fundamental que você entenda como Swift lida com variáveis e constantes. Apesar de poder levar algum tempo para se habituar ao conceito de constantes, uma vez que você aceitou essa recomendação, seu código será muito mais seguro e mais fácil de entender. No próximo tutorial desta série, nós continuamos nossa exploração do Swift olhando para coleções.

Seja o primeiro a saber sobre novas traduções–siga @tutsplus_pt no Twitter!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.