Menu
Coddy logo textTech

O que são Opcionais

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 um valor. Em Swift, representamos a ausência de um valor using optionals. Um optional diz "existe um valor, e ele é igual a x" ou "não existe valor nenhum."

Para declarar um optional, adicione uma 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 forma do Swift de dizer "sem valor". Variáveis normais não podem ser nil, mas optionals podem.

Pense em um optional como uma caixa que pode conter algo ou pode estar vazia. Antes de usar o que está dentro, você precisa verificar se realmente há algo lá. Este é um recurso de segurança essencial no Swift que ajuda a evitar falhas devido a valores ausentes inesperados.

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

score = nil
print(score) // nil

Note que quando você imprime um optional com um valor, ele mostra Optional(100) em vez de apenas 100. Para acessar o valor real dentro dele, você precisa desempacotar o optional — o que abordaremos nas próximas lições.

challenge icon

Desafio

Fácil

Escreva uma função createOptional que recebe um número e retorna uma string mostrando como esse número se pareceria se fosse impresso como um optional.

Importante: esta função retorna uma String. Você está escrevendo um texto que se parece com um optional, você não está retornando um valor optional real.

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

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

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

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

Parâmetros:

  • value (Int): O número a ser envolvido no formato optional

Retorno: Uma string no formato Optional(value) onde 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 de verdade
    // 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