我有一個功能,需要一個String
標籤的說法:是否有一個雨燕的基於字符串的枚舉?
func findFooByTag(_ tag: String) -> Foo
現在我想使代碼通過引入一個枚舉的有效標記值更短,更安全:
enum Tags: String {
case one
case two
case three
}
但我仍需要調用一個String
功能:
let foo = findFooByTag(Tags.one.rawValue)
有沒有辦法說「findFooByTag
採取任何字符串-b一個枚舉「?我發現了這個:
func findFooByTag<T>(_ tag: T) -> Foo where T: RawRepresentable, T.RawValue == String
但是,這是相當的一口。至少有可能以某種方式在類型別名下的地毯上進行掃描?
你會如何使用''findByTag'內tag'工作?你所知道的是它是一個空的協議。 – zoul
@zoul我充滿更多的內容。 – sCha