In meiner aktuellen Implementierung, ich vorbei zu einer Funktion eine Zeichenfolge Enum rawValue
wie folgt aus:Welcher Typ ist ein String enum, so dass es als Parameter verwendet werden kann?
enum Compass: String {
case North, South, East, West
}
func something(key: String) {...}
something(Compass.East.rawValue)
Gibt es eine andere Art andere als String
für die Funktion, so kann ich so etwas tun?
something(Compass.East)
Ich will nicht den key
Parameter vom Typ machen Compass
, weil ich enums
kommen aus verschiedenen Orten, aber alles erben von String
.
Ich habe versucht, dies zu tun, bekam aber einen Fehler:
func etwas (Schlüssel: StringLiteralConvertible) {...} // Fehler: Protokoll 'StringLiteralConvertible' kann nur als generische Einschränkung verwendet werden
Gibt es einen Typ, den ich verwenden kann, muss ich nicht jedes Mal rawValue
verwenden.