Junior — Middle
É possível adicionar propriedades adicionais a classes ou objetos existentes através de extensões?
sobes.tech IA
Resposta da IA
Em Swift, extensões permitem adicionar novos métodos, propriedades calculadas e inicializadores a classes, estruturas e enumerações existentes, mas não é possível adicionar propriedades armazenadas.
Ou seja, não pode adicionar propriedades armazenadas adicionais através de uma extensão, mas pode adicionar propriedades calculadas que são derivadas de dados existentes.
Exemplo de uma propriedade calculada numa extensão:
extension String {
var isPalindrome: Bool {
return self == String(self.reversed())
}
}
Se precisar adicionar propriedades armazenadas, geralmente usa-se objetos associados (associated objects) no runtime do Objective-C, mas isso não é um método padrão e não é suportado diretamente em Swift.