Junior — Middle
É possível instanciar diretamente um objeto de protocolo na linguagem de programação?
sobes.tech IA
Resposta da IA
Em Swift (linguagem de programação para iOS), os protocolos descrevem um conjunto de requisitos (métodos, propriedades) que um tipo deve implementar. Não é possível criar diretamente uma instância do protocolo, pois o próprio protocolo não contém implementação.
No entanto, se houver uma classe ou estrutura que implemente o protocolo, pode-se criar uma instância desse tipo e trabalhar com ela através de uma referência ao protocolo.
Exemplo:
protocol Drawable {
func draw()
}
class Circle: Drawable {
func draw() {
print("Desenhando um círculo")
}
}
let shape: Drawable = Circle() // cria uma instância da classe que implementa o protocolo
shape.draw() // chama o método do protocolo
Se precisar de um objeto que corresponda ao protocolo, mas não quiser criar uma classe concreta, pode usar tipos envolventes ou implementações anônimas, mas não há instanciamento direto do protocolo.