Ähnlich in Geist zu this question, außer, anstatt ein Protokoll auf nur Klassen zu begrenzen, will ich in der Lage sein, ein Protokoll zu definieren, das nur durch enums, Strukturen usw. angenommen werden kann. Ist das möglich?Wie schränkt man ein Protokoll nur auf Werttypen ein?
11
A
Antwort
6
Ich konnte die Antwort nicht finden, aber durch herumspielen, bin ich zu dem Schluss gekommen, dass Sie nicht können. Sein, dass ein Protokoll nur Klassen zu beschränken, können Sie vorangehen es mit class
wie
protocol SomeProto: class {
func structYourStuff() -> Void
}
der Annahme, dass dies unter anderen Typen konsistent sein würde, habe ich versucht,
protocol SomeProto: struct {
func structYourStuff() -> Void
}
Aber Xcode gab mir fünf verschiedene Fehler in einer Zeile, die mich zu der Schlussfolgerung führt, dass Sie nicht können. Ich könnte aber völlig falsch liegen, ich habe erst vor ungefähr einer Woche angefangen, Swift zu lernen
Genau, wir können das nicht tun. IMHO, es wäre eine nützliche Erweiterung der Sprache. – CouchDeveloper
@CouchDeveloper Sie haben mich überlegt, vielleicht gibt es eine Möglichkeit, eine enge Funktionalität aufzubauen, da wir die Flexibilität von benutzerdefinierten Operatoren haben. Ich kann mir nicht vorstellen, wie das funktionieren würde. – Chris