Beatriz da Silva
Posted on October 15, 2023
Inicializadores
Toda struct tem um init padrão(memberwise initializer), mas é possível criar outros inits e ao criar um init o padrão é substituído.
Caso queira manter o init padrão mesmo após criar um, é só mover o init personalizado pra uma extension.
Self
Dentro do método é possível nos referir à instância da estrutura usando self, isso é bastante usado pra usar o mesmo nome de variável ao criar o init.
O self serve para indicar que uma propriedade diz respeito ao elemento(struct, class) e não a uma variável local.
Lazy
Para otimização de performance o Swift nos deixa criar algumas propriedades apenas quando elas são necessárias(Lazy), parecido com as propriedades computadas; Mas ao contrário dessas, as propriedades lazy armazenam o resultado calculado, evitando retrabalho nos próximos acessos.
São bem performáticas quando não estão sendo utilizadas porque o código nunca roda e ainda mais performáticas quando usadas várias vezes porque seu valor é armazenado em cache.
- Não são indicadas pra uso em coisas que não precisam de armazenamento ou que não são modificadas constantemente.
- Não podem ser utilizadas em structs constantes.
Propriedades e métodos estáticos
Declarando uma propriedade ou método como estático é possível compartilhar eles em todas as instâncias da struct já que eles passam a ser membros da própria struct ao invés de cada instância ter o seu.
Controle de acesso
O controle de acesso do swift é baseado no conceito de módulos e arquivos e tem 5 níveis de acesso diferentes para entidades(propriedades, tipos, funções...) dentro do código.
Open - Permite que entidades sejam usadas no módulo de definição e em qualquer outro que importe o módulo de definição; Pode acessar e sobrescrever.
Public - Permite que entidades sejam usadas no módulo de definição e em qualquer outro que importe o módulo de definição; Pode acessar, mas não pode sobrescrever.
Internal - Padrão do Swift, tudo que está no mesmo módulo pode ser acessado.
File-private - Só quem está no mesmo arquivo pode usar.
Private - Só quem declarou ou extensões de quem declarou(no mesmo arquivo) podem usar.
Posted on October 15, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.