Sobes.tech
Junior

O que é wrapped?

sobes.tech IA

Resposta da IA

wrapped - é o valor de um tipo opcional após uma extração bem-sucedida (unwrapping) do seu conteúdo. O opcional Optional<<Wrapped>> armazena ou um valor do tipo Wrapped ou nil. A extração permite aceder ao valor Wrapped se ele existir.

Exemplos de extração:

  1. Extração forçada (Force unwrapping) !:

    var optionalString: String? = "Hello"
    let unwrappedString = optionalString! // Obtém o valor "Hello"
    // Se optionalString == nil, ocorrerá um erro
    
  2. Ligação opcional (Optional binding) if let ou guard let:

    var anotherOptionalString: String? = "World"
    if let guaranteedString = anotherOptionalString {
        // Dentro deste bloco, guaranteedString é do tipo String (desencapsulado)
        print(guaranteedString)
    }
    
  3. Encadeamento opcional (Optional chaining) ?:

    class MyClass { var property: String? }
    var instance: MyClass? = MyClass()
    instance?.property = "Value" // Se instance não for nil, a propriedade é definida
    let retrievedValue = instance?.property // retrievedValue será String?
    
  4. Operador de coalescência nula (Nil-coalescing operator) ??:

    var yetAnotherOptionalString: String? = nil
    let defaultValue = yetAnotherOptionalString ?? "Default" // defaultValue será "Default" (String)
    // Se yetAnotherOptionalString tivesse valor, seria usado como desencapsulado.
    

No contexto do Swift, o valor wrapped é diretamente aquilo que estava "dentro" do opcional antes do seu tratamento.