Segredos segredosos dos Optionals em Swift: Um Guia para não perder o juízo!
Tags: beginners, learning, mobile, swift
Published: 2023-08-17 13:15:57

Se você, assim como eu, já teve a sensação de estar navegando pelos mares naufrágicos da programação em Swift e se deparou com um daqueles misteriosos **"Optionals"**, não se preocupe, você não está sozinho! Os Optionals são como os gatos da programação: às vezes adoráveis, às vezes teimosos, mas sempre mantendo você na linha (do seu código)!

## What tha hell são esses Optionals?

Imagine que você está organizando uma festa, e você convida um amigo para trazer aquele prato de farofa (amo farofa) famoso. No entanto, em vez de um simples "sim" ou "não", seu amigo responde com "talvez". Isso é um Optional! Em termos mais técnicos, um Optional em Swift é uma variável que pode conter um valor ou absolutamente nada (nem mesmo um pratinho de farofa).

## O remelexo do "!" e "?"

Os Optionals adoram uma baguncinha, e é por isso que Swift oferece duas maneiras de interagir com eles: "!" e "?". O ponto de exclamação (!) é como gritar "Estou certo de que há farofa nessa!". Você está garantindo que existe algo dentro do Optional. No entanto, cuidado para não gritar sem dar uma olhadinha primeiro, isso pode acabar em uma dor de cabeça (ou um erro de runtime)!

Por outro lado, temos o ponto de interrogação (?), que é como olhar desconfiado para a panela e se perguntar: "Será que tem farofa aí dentro?" O ponto de interrogação nos permite verificar se há valor dentro do Optional antes de mergulhar de cabeça.

## Abrindo (Unwrapping) a Panela de Farofa

Imagine que finalmente chegou a hora de se entupir de comer farofa com aquela picanha suculenta. Você abre a panela e... WTF?!?!?!? Ou tá cheio de farofa até a tampa (um valor), ou a panela está vazia (nil). É aqui que entra a "desembrulhagem" do tal de Optionals conhecida como "Unwrapping".

Se você está confiante de que tem farofa na panela, use o operador de unwrapping forçado (!) e coma farofa até não aguentar mais. Só toma cuidado que, se não houver nada na panela, você vai se meter em confusão mais rápido do que se mexer com mulher casada.

Se você é exxxperrrrto (ou neurótico) como eu e prefere verificar primeiro, use o unwrapping condicional (?). Ele permite que você verifique se há valor antes de pegá-lo, evitando que dê mer** 😬.

## Os Cavaleiros do Zodíaco: if let e guard let

Em sua busca pela farofa perdida, você vai encontrar os cavaleiros do zodíaco do Swift: if let e guard let. Eles são nossos guerreiros, protegendo nosso código de apocalipses Optional-related. Com if let, você verifica e faz o unwrapp em um único golpe certeiro e elegante. Se a farofa celestial estiver lá, na panela do firmamento, você pode se deliciar, se não, a festa (código) segue sem problemas.

Já o guard let é como o escudo do Cavaleiro de Libra, ele garante que a farofa esteja disponível durante toda a festa. Se eles não estiverem lá por algum motivo, o guard chega de voadora e impede que você prossiga, mantendo a festa do código organizada e todo mundo dançando.

## E pra fechar: Dominando os Optionals com elegância e requinte.

Enquanto os Optionals podem parecer um labirinto enigmático (pelo menos para reles mortais como nós), eles são apenas parte da diversão da programação em Swift. 

Lembre-se sempre de verificar a panela antes de ter certeza que tem farofa la dentro, use os operadores de unwrapping corretos e, se necessário, peça socorro aos Cavaleiros do Zodíaco if let e guard let para garantir que a festa não acabe (crashes).

Da próxima vez que você se deparar com um Optional, não se sinta perdido. Lembre-se do meu teorema da farofa e você estará pronto! 🥰 🚀

Aproveita e me segue:
[Linkedin](https://www.linkedin.com/in/andremporto/)
[GitHub](https://github.com/andremporto)