DEV Community

Beatriz da Silva
Beatriz da Silva

Posted on

1

Dia 11 - #100DaysOfSwift

Protocolos

São uma forma de descrever quais propriedades e métodos algo(structs, classes, enums) deve ter, então quando escrevemos um código dizendo que algo conforma com um protocolo o Swift vai fazer com que implementemos todas as propriedades e métodos que existem nesse protocolo. É uma forma de tratar dados de uma forma mais geral.

Image description
Método comprar que só permite livros como parâmetro

Image description
Método comprar que aceita qualquer item que conforme com o protocolo Adquirivel como parâmetro

Assim como as classes, protocolos podem herdar de outros protocolos, isso ajuda a diminuir duplicação de código e a adicionar restrições quando necessário.


Extensions

Permitem adicionar métodos à tipos existentes pra fazer coisas que eles não foram criados originalmente pra fazer.

Image description

Outro uso para extensions é organização de código.
Conformance grouping é quando se adiciona uma conformidade de protocolo a uma extensão, adicionando todos os métodos necessários dentro dela.

Purpose grouping é quando se cria extensões para realizar tarefas específicas.


Protocol extensions

São como extensions normais, mas ao invés de estender um tipo específico como Int, podemos estender um protocolo inteiro para que todos os tipos em conformidade recebam as alterações.

Image description

Protocol extensions podem fornecer implementações pros métodos dos nossos próprios protocolos, permitindo o uso da técnica de programação orientada à protocolo.

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (1)

Collapse
 
yjt1216 profile image
尹江涛

mark

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

AWS GenAI LIVE!

GenAI LIVE! is a dynamic live-streamed show exploring how AWS and our partners are helping organizations unlock real value with generative AI.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️