Tag: Swift 4.2

== (duplo igual), === (triplo igual) e o protocolo Equatable

TL;DR: O operador duplo-igual (==) diz se dois objetos são “iguais” ou “equivalentes”, e esse significado tem que ser implementado pelo programador (que faz isso através do protocolo Equatable).  Por outro lado, o operador triplo-igual (===) diz se duas variáveis fazem referência ao mesmo objeto — algo que o Swift faz sem precisar do programador.

Extensões

TL;DR: Extensões podem ser usadas para criar novas funcionalidades em tipos existentes: adicionar métodos, propriedades computadas, inicializadores, e assim por diante.  Isso pode ser muito conveniente quando precisamos dessas funcionalidades em tipos que não foram criados por nós, como String, Array, UIColor, UIView… O Swift oferece um recurso único para adicionar funcionalidades a tipos (classes, …

Um pouco sobre os guards

TL;DR: Tudo que o guard faz poderia ser feito com if.  Mas os guards foram criados para melhorar a leitura do código, indicando um “posto de verificação” para os comandos seguintes: “Preciso que esta condição seja verdadeira, senão não é possível executar nada daqui pra frente.” O guard é uma dessas coisas em Swift que a …

Diferença entre classes e structs

TL;DR: Objetos (instâncias de classes) são sempre armazenadas por referência, portanto a declaração var b = a não cria uma cópia — ambas as variáveis se referem à mesma instância.  Já com structs, cada variável se refere a uma única instância, portanto var b = a cria uma nova instância (uma cópia independente) de a.