Sobes.tech
Junior — Middle

É possível criar uma implementação própria do tipo Optional para lidar com valores potencialmente ausentes?

sobes.tech IA

Resposta da IA

Sim, é possível criar uma implementação própria do tipo Optional para lidar com valores que podem estar ausentes. Em Swift, Optional é um encapsulamento que contém um valor ou nil.

Exemplo de uma implementação simples de um Optional próprio:

enum MyOptional<T> {
    case some(T)
    case none

    func unwrap() -> T? {
        switch self {
        case .some(let value):
            return value
        case .none:
            return nil
        }
    }
}

// Uso
let value: MyOptional<Int> = .some(10)
if let unwrapped = value.unwrap() {
    print("Valor: \(unwrapped)")
} else {
    print("Valor ausente")
}

Dessa forma, é possível implementar um tipo próprio que funciona de acordo com o princípio de Optional, garantindo uma manipulação segura de valores ausentes.