Você está na página 1de 17

Swift - Funções, Structs e Classes

Agenda
O que é uma função?
O que são closures?
Um paralelo entre Structs e Classes
Um estudo sobre Propriedades
O que é uma função?
O que é uma função?

Definição: são blocos de código nomeados que executam uma


tarefa sempre que chamado.

Simples Com parâmetro Parâmetro nome externo/interno

Parâmetro nome externo oculto Com retorno


O que são closures?
O que são closures?

Definição: Closures são blocos de código auto contidos que executam


uma tarefa.
Simples

Shorthand Argument
Um paralelo entre Structs e Classes
Um paralelo entre Structs e Classes

Structs e Classes

Definir Propriedades
Definir Métodos
Criar vários construtores
Implementar Protocolos
Expandir através de Extensions
Um paralelo entre Structs e Classes

Structs Classes

Value Type Reference Type


Construtor automático Herança
Possuem Destrutores
Um paralelo entre Structs e Classes

Structs Classes
Um estudo sobre Propriedades
Um estudo sobre Propriedades

Stored Property com Observers Observers

willSet didSet
Antes do valor ser Depois do valor ser
alterado alterado

newValue possui o oldValue possui o


novo valor valor antigo

O valor inicial é atribuído no construtor ou na declaração.


Um estudo sobre Propriedades

Computed Property

Não armazena valores


Executa um bloco ao ser solicitada e outro ao ser atualizada.
Um estudo sobre Propriedades

Lazy Property

Precisam de um valor inicial


O valor inicial não é computado até a primeira chamada
Possíveis casos de uso:
1. Propriedades com um custo computacional muito grande
2. Propriedade que depende de outras para ser inicializado
Desafios
Desafios

Desafio 1

Construa uma função somar que recebe dois inteiros opcionais e que,
caso um destes valores seja nulo, o método deve retornar nulo, senão
deve retornar a soma dos valores passados por parâmetro.

Desafio 2

Crie uma função para filtrar elementos de um array de inteiros utilizando


closures. Esta função deve receber um array de inteiros e uma closure que
serve como parâmetro de filtro do array. Pesquise sobre o método filter da
struct array e estude seu funcionamento para conseguir reproduzi-lo.

Você também pode gostar