Simile nello spirito a this question, eccetto che, invece di limitare un protocollo solo alle classi, voglio essere in grado di definire un protocollo che può essere adottato solo da enumerazioni, strutture ecc. È possibile?Come limitare un protocollo solo ai tipi di valore?
11
A
risposta
6
Non sono riuscito a trovare la risposta, ma attraverso il gioco, sono giunto alla conclusione che non è possibile. Essendo che per limitare un protocollo solo le classi, si antepone con class
come
protocol SomeProto: class {
func structYourStuff() -> Void
}
facendo l'ipotesi che questo sarebbe coerente tra gli altri tipi, ho provato
protocol SomeProto: struct {
func structYourStuff() -> Void
}
Ma Xcode mi ha dato cinque diversi errori su una riga, che mi portano alla conclusione che non puoi. Potrei sbagliare completamente, ho solo iniziato a imparare Swift circa una settimana fa
Esattamente, non possiamo farlo. IMHO, sarebbe un'estensione utile alla lingua. – CouchDeveloper
@CouchDeveloper Mi hai fatto pensare, forse c'è un modo per costruire funzionalità vicine dato che abbiamo la flessibilità degli operatori personalizzati. Non riesco a pensare a come funzionerebbe comunque. – Chris