Conhecendo a Linguagem de programação Swift

Conhecendo a Linguagem de programação Swift

A linguagem de programação Swift foi desenvolvida pela Apple e anunciada em 2014 durante  sua conferência mundial para desenvolvedores, a WWDC. Ela é usada na criação de aplicativos para iOS, Mac, Apple TV e Apple Watch. Antes do seu lançamento, a linguagem de programação mais utilizada pelos desenvolvedores para essas plataformas era o Objective-C.

Swift é uma linguagem que pode ser facilmente agregada a um código Objective-C existente pois ambas utilizam o mesmo compilador. Na sua primeira versão, o Swift se tratava de uma linguagem de código proprietário, porém em 2015, na sua versão 2.2, a linguagem se tornou código aberto. Swift também é multi-paradigma, pois permite a utilização de diferentes paradigmas, como orientação a objetos, orientação a protocolos e programação funcional.

Segundo o site da Apple, o Swift é uma linguagem 2,6 vezes mais rápida do que o Objective-C e 8,4 vezes mais rápida que o Python. Outra vantagem da linguagem é que ela pode ser utilizada em aplicações web e servidores. Ela possui recursos modernos como inferência de tipo, opcionais e closures. A memória é gerenciada automaticamente e possui tratamento de erros nativo. É uma linguagem de programação amigável para novos desenvolvedores com sintaxe leve, mais fácil de escrever, ler e manter.

Quando estamos iniciando o aprendizado de uma nova linguagem é muito comum que o primeiro código escrito seja o famoso “hello, world!”. Em Swift ele pode ser escrito com apenas uma linha de código:

Não é preciso importar bibliotecas para funcionalidades de entrada e saída, nem escrever uma função main(),  pois o código escrito no escopo global é usado como ponto de entrada para o programa. Também não é preciso utilizar ponto e vírgula no final de cada instrução.

Variáveis e constantes

No Swift você pode declarar variáveis e constantes. Uma variável é declarada usando a palavra reservada var. Esse tipo de propriedade pode ter seu valor alterado. Já uma constante não pode ter seu valor alterado e deve ser declarada usando a palavra reservada let.

O Swift é fortemente tipado, o que significa que, ao declarar uma constante ou variável ela precisa ter o mesmo tipo de valor que você deseja atribuir a ela, e esse tipo uma vez atribuído, não pode ser alterado. Devido a inferência de tipo, você não precisa escrever o tipo explicitamente.

Ao inicializar uma variável ou constante com números inteiros, quando não declarado o tipo, o Swift vai inferir como sendo Int. Se o valor atribuído for um número decimal, o Swift vai inferir que o tipo deve ser Double.

O Swift sempre escolhe o Double em vez do Float ao inferir números de ponto flutuante. Se você deseja que sua variável seja do tipo Float, você precisa declarar explicitamente.

Tuplas

Uma tupla é usada para agrupar diversos valores em um atributo composto. Ela é bastante útil para grupos de valores relacionados. Os valores dentro de uma tupla podem ser todos do mesmo tipo ou podem ter tipos diferentes. Para criar uma tupla, declaramos uma variável ou constante e adicionamos os valores entre parênteses e separados por vírgula. Veja um exemplo:

Também podemos nomear elementos individuais dentro de uma tupla:

E para recuperar o valor dos atributos podemos criar variáveis para receber esses valores:

Ou acessá-los diretamente pela sua posição, ou pelo valor nomeado anteriormente:

Opcionais

Outro conceito interessante no Swift são os opcionais. Opcionais representam a ausência completa de valor e qualquer tipo dentro do Swift pode ser um opcional. Ao declararmos uma variável ou constante como opcional, estamos indicando que ela pode ou não conter um valor. Para declarar um atributo como opcional, basta adicionar um ponto de interrogação junto ao tipo.

Veja um exemplo:

Nesse caso, serviceCode contém o valor 404, mas por ser um opcional, ele pode ser alterado para não conter nenhum valor. Em Swift o nil é utilizado para representar a ausência de um valor.

Veja um exemplo mais claro de uso:

Nem toda string pode ser convertida para inteiro, então a constante convertedNumber vai ser inferida com o tipo opcional Int?. Isso significa que convertedNumber ou contém o valor inteiro resultado da conversão da string ou não contém nada. Se você declara uma variável opcional e não fornece um valor padrão, ela será automaticamente nil.

Existem algumas formas de verificar se um opcional contém ou não um valor. Uma dessas formas é usando uma estratégia conhecida como optional binding.

Basicamente a diferença entre o if let e o guard let está no escopo onde a nova variável contendo o valor do opcional pode ser acessada.

No if let, se o opcional phone conter um valor a instrução dentro das chaves vai ser executada e o novo valor de phone dentro desse contexto já não é mais um opcional. Esse novo valor só pode ser acessado dentro dessas chaves.

No guard let, caso o valor exista é possível acessá-lo após finalizada a instrução. Nessa estrutura é preciso sempre informar o que deve ser feito caso o valor não exista. A cláusula else do guard let vai cuidar de tratar o cenário caso o valor não exista. Nessa cláusula precisa conter uma instrução de transferência de controle como um return, que vai garantir que, caso o opcional não tenha um valor, o código será interrompido.

Outra forma de acessar o valor de um opcional é através do desempacotamento forçado (forced unwrapping). Se você tiver certeza que um opcional contém um valor, você pode forçar esse acesso. Esse método não é seguro e deve ser evitado. Caso você force o desempacotamento de um opcional que não contém um valor, você receberá um erro em tempo de execução. Para usar essa estratégia basta utilizar um ponto de exclamação na frente do valor opcional.

Conclusão

O Swift é uma linguagem dinâmica, muito poderosa e que contém bastantes recursos para facilitar a vida do desenvolvedor. Essa foi uma pequena introdução mostrando alguns conceitos da linguagem que são interessantes para quem está iniciando seus estudos nela. A Apple disponibiliza em seu site a documentação completa do Swift, e é extremamente importante consultá-la se você deseja aprofundar seus estudos nessa linguagem.

💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.