Menu
Coddy logo textTech

O que são Optionais

Parte da seção Fundamentos do Journey de Swift da Coddy. Lição 11 de 86.

Às vezes, uma variável pode não ter valor algum. Em Swift, representamos a ausência de um valor usando opcionais. Um opcional diz “há um valor, e ele é igual a x” ou “não há valor algum”.

Para declarar um opcional, adicione um ponto de interrogação ? após o tipo:

var nickname: String? = "Alex"
var age: Int? = nil

No exemplo acima, nickname contém o valor "Alex", enquanto age contém nil: a maneira do Swift de dizer "nenhum valor". Variáveis comuns não podem ser nil, mas opcionais podem.

Pense em um optional como uma caixa que pode conter algo ou estar vazia. Antes de usar o que está dentro, você precisa verificar se realmente há algo ali. Esse é um recurso de segurança importante do Swift que ajuda a evitar falhas causadas por valores ausentes inesperados.

var score: Int? = 100
print(score) // Optional(100)

score = nil
print(score) // nil

Observe que, ao imprimir um opcional com um valor, ele mostra Optional(100) em vez de apenas 100. Para acessar o valor real contido nele, você precisa desempacotar o opcional, o que abordaremos nas próximas lições.

challenge icon

Desafio

Fácil

Escreva uma função createOptional que receba um número e retorne uma string mostrando como esse número ficaria quando impresso como um opcional.

Importante: essa função retorna uma String. Você está escrevendo um texto que se parece com um opcional; não está retornando um valor opcional de verdade.

Quando você imprime um opcional que contém um valor, o Swift o exibe no formato Optional(value).

Lembrete sobre a sintaxe de funções: no Swift, uma função que retorna um valor usa a seta -> para especificar o tipo de retorno e a palavra-chave return para devolver o resultado. Por exemplo:

func myFunction(param: Int) -> String {<br>    return "result"<br>}

Você pode criar a string de retorno usando interpolação de strings: "Optional(\(value))": a parte \(value) insere o número diretamente na string.

Parâmetros:

  • value (Int): o número a ser envolvido no formato de opcional

Retorna: uma string no formato Optional(value), em que value é o número fornecido.

Exemplo: se a entrada for 100, retorne "Optional(100)"

Experimente você mesmo

func createOptional(value: Int) -> String {
    // Retorne uma String que parece um optional, não um optional real
    // Insira o número entre os parênteses usando interpolação de string
    return "Optional()"
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Swift