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
Problemi correlati
- 1. Come limitare T ai tipi di valore utilizzando un vincolo?
- 2. Come limitare Primefaces inputMask ai numeri solo?
- 3. Posso limitare un attributo personalizzato solo ai metodi void?
- 4. Come limitare EditText solo ai caratteri specificati in Android?
- 5. Come posso vincolare un tipo (tipo?) Solo ai tipi di prodotto
- 6. tipi annidati all'interno di un protocollo
- 7. Alternative ai buffer di protocollo
- 8. Come limitare setAccessible ai soli usi "legittimi"?
- 9. Come limitare gli indici delle tabulazioni solo a un overlay e ai relativi elementi
- 10. opzionale può essere applicato solo ai membri di un protocollo @objc
- 11. Come definire il limite di tipo generico ai tipi primitivi?
- 12. Come limitare i tipi di file jQuery al caricamento?
- 13. Plupload - Limitare a un solo file
- 14. test di conformità protocollo con tipi associati
- 15. Come limitare una vista solo al superutente?
- 16. Come limitare l'accesso alla cartella/file ad un solo programma?
- 17. Limitare Window.SizeToContent per espandere solo
- 18. Qual è la differenza tra un protocollo esteso da AnyObject e un protocollo di solo classe?
- 19. 'Self' è disponibile solo in un protocollo o come risultato di un metodo di classe
- 20. Come posso archiviare tipi Java, permettendo solo alcuni specifici?
- 21. Un contenitore std :: map che mappa i tipi ai valori
- 22. Utilizzo di .htaccess per limitare l'accesso ai file
- 23. Limitare una corrispondenza in vim a determinati tipi di file?
- 24. Come limitare l'accesso ai file con estensioni specifiche in ASP.NET?
- 25. Posso aggiungere campi ai tipi di clojure?
- 26. Come .NET differenzia il riferimento rispetto ai tipi primitivi e di valore
- 27. Come limitare l'accesso ai percorsi nel react-router?
- 28. Come confrontare i tipi di valore "Qualsiasi"
- 29. Impossibile creare un valore costante di tipo Solo tipi primitivi o tipi di enumerazione sono supportati in questo contesto
- 30. Come aggiungere un valore di matrice ai nuovi FormData?
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