DEV Community

Cover image for Variáveis e Constantes em Swift
Matheus dos Reis de Jesus
Matheus dos Reis de Jesus

Posted on

Variáveis e Constantes em Swift

Capa por Blake Connally no Unsplash

Sumário

Introdução

Uma das primeiras coisas para se conhecer ao aprender uma nova linguagem é o funcionamento das constantes e variáveis. Esse artigo traz uma breve explicação deste conceito dentro da linguagem Swift.

Declarando constantes e variáveis

Constantes

Para se declarar uma constante usamos a palavra-chave let. Como o próprio nome sugere, constantes não podem ter seu valor alterado. Quando declaradas, seu valor é atribuído e não poderá ser modificado. Abaixo, um exemplo:

let helloWorld = "Hello world!"

// Tentando atribuir um novo valor:
helloWorld = "Novo valor"

/*
* Irá resultar em um erro:
* "Cannot assign to value: ‘helloWorld’ is a ‘let’ constant"
*/
Enter fullscreen mode Exit fullscreen mode

Como descrito no bloco de código acima, tentar atribuir outro valor à uma constante irá causar um erro. Então, lembre-se: a palavra chave let só deve ser usada quando o valor for constante. Inclusive, a própria documentação da linguagem recomenda que se use let sempre que possível.

Variáveis

Para se declarar uma variável usamos a palavra-chave var. Sempre que for preciso armazenar um valor que pode mudar durante a execução de um código, deve-se usar var. É possível, inclusive, declarar mais de uma variável em uma mesma linha. Abaixo, temos alguns exemplos:

// Declarações únicas
var x = 0
var valido = true
var meuTexto = "Este é um texto"

// Declarações múltiplas
var x = 0, y = 10, z = 100
var string1 = "Primeira string", string2 = "Segunda string"
Enter fullscreen mode Exit fullscreen mode

Definindo o tipo

A linguagem Swift permite que sejam definidos tipos para variáveis e constantes(apesar de não ser obrigatório), e escrevemos da seguinte forma:

let meuTexto: String = "Este é um texto"
let contador: Int = 0
let medida: Float = 2.5
let valor: Double = 10.0
let hoje: Date = Date()
Enter fullscreen mode Exit fullscreen mode

A linguagem Swift possui os tipos básicos, como tupla, array e dicionário. Os demais tipos são providos pelo framework Foundation, criado pela própria Apple. Você pode ver os tipos com mais detalhes neste link.

Além dos exemplos acima, uma variável/constante também pode ser do tipo Optional, que é usado quando o valor pode ser indefinido, dessa forma:

// Valor "nil" explícito
var meuTexto: String? = nil

// Valor "nil" implícito
var meuTexto: String?
Enter fullscreen mode Exit fullscreen mode

A palavra-chave nil é similar ao null em outras linguagens, usada para indicar um valor nulo. O tipo Optional possui muitos detalhes que serão explicados em outro artigo. Neste, iremos nos limitar apenas a saber que é possível utilizá-lo.

Atribuindo valores

Para atribuir valores, sua variável/constante pode ter um tipo definido ou não. Se ela tiver, o valor atribuído deve ser do mesmo tipo da variável.

// Com tipo definido:
var meuTexto: String = "Esse é um texto"

// Sem tipo definido
var meuTexto = "Esse é um texto"
Enter fullscreen mode Exit fullscreen mode

Se você não definir um tipo, o compilador irá considerar o tipo do valor atribuído. No caso acima, o tipo seria String.

Quando a variável/constante possui um tipo definido, o valor que for atribuído deverá ser desse mesmo tipo.

var meuTexto: String = 1
Enter fullscreen mode Exit fullscreen mode

Como o valor atribuído acima é do tipo inteiro, mas o tipo da variável meuTexto é String, esse trecho irá disparar uma exceção:

error: cannot convert value of type 'Int' to specified type 'String'

A própria linguagem já previne que você cometa erros ao atribuir valores de tipos diferentes do que foi definido para uma determinada variável/constante.

Conclusão

Agora você já conhece o básico sobre o uso de variáveis e constantes em Swift. Recomendo que veja a documentação da linguagem e também do framework Foundation sobre os diferentes tipos disponíveis.

Gostou deste artigo? Compartilhe e me siga para mais conteúdos como esse!

Minhas redes:

Twitter | Instagram | Blog | Youtube | GitHub | LinkedIn

Até a próxima!👋🏽

Discussion (0)