Sobes.tech
Junior — Middle

È possibile dichiarare un protocollo di estensione in una dichiarazione indicando un altro protocollo affinché erediti le sue proprietà?

sobes.tech AI

Risposta dell'AI

In Swift, i protocolli possono ereditare proprietà e metodi da altri protocolli. Tuttavia, i protocolli di estensione (extension protocols) non vengono dichiarati separatamente: le estensioni si applicano ai protocolli esistenti.

Se vuoi che un protocollo erediti da un altro, lo dichiari esplicitamente:

protocol A {
    func methodA()
}

protocol B: A {
    func methodB()
}

Qui, il protocollo B eredita dal protocollo A e richiede l'implementazione di entrambi i metodi.

Le estensioni di protocolli (extension) permettono di aggiungere implementazioni di metodi, ma non di dichiarare un nuovo protocollo con ereditarietà. Quindi, dichiarare un protocollo di estensione con ereditarietà di proprietà di un altro protocollo può essere fatto solo tramite ereditarietà normale di protocolli, non tramite estensioni.