Junior
O que são opcionais e qual o papel deles na linguagem Swift?
sobes.tech IA
Resposta da IA
Opcional em Swift é um tipo que pode conter um valor ou não conter (ser nil).
Funções dos opcionais:
- Gestão da ausência de valores (segurança nil).
- Prevenção de erros de acesso a nil em tempo de execução (quedas).
- Definição clara no código de onde um valor pode faltar.
Conceitos principais:
- Declaração de um opcional:
ValueType?ouOptional<ValueType> - Atribuição de nil: pode-se atribuir
nila um opcional. - Desembrulhamento forçado (
!): extrai o valor se existir, caso contrário provoca um erro fatal. - Ligação opcional (
if let,guard let): extrai de forma segura o valor se não fornil, criando uma constante ou variável temporária. - Cadeia opcional (
?.): permite chamar métodos, aceder a propriedades ou índices de um opcional de forma segura. - Operador de fusão com nil (
??): fornece um valor padrão se o opcional fornil.
Exemplos de uso:
// Declaração de um Int opcional
var age: Int?
// Atribuição de valor
age = 30
// Desembrulhamento forçado (não seguro se age == nil)
// let unwrappedAge = age!
// Ligação opcional com if let
if let currentAge = age {
print("Idade: \(currentAge)") // Executa se age não for nil
} else {
print("Idade desconhecida") // Executa se age for nil
}
// Cadeia opcional
struct Person {
var name: String
var address: Address?
}
struct Address {
var street: String
}
var person: Person? = Person(name: "Alice", address: Address(street: "Main St"))
// Tentar obter a rua através de cadeia opcional
let streetName = person?.address?.street // streetName será String?
// Operador de fusão com nil
let displayedStreet = streetName ?? "Rua desconhecida"
print(displayedStreet) // Vai imprimir "Main St"