我想要一个GenericThing
带有模板参数的模板参数,它是可以明智地转换为字符串和从字符串转换的任何类型。
// ConvertsToAndFromString is a made up protocol here – what should I use instead?
struct GenericThing<Id: ConvertsToAndFromString> {
}
然后我应该能够使用GenericThing
任何具有合理编码作为字符串的类型。例如,它应该适用于Int
, String
(嗯,dah),理想情况下,它应该适用于任何本身将转换为字符串和从字符串转换的RawRepresentable
地方。RawValue
例子:
enum Tubbies: String {
case dipsy
case laalaa
case po
}
// I'd like to be able to do this.
let genericThing = GenericThing<Tubbies>
我看不出如何轻松做到这一点。
我希望我可以使用LosslessStringConvertible
而不是我的 make up ConvertsToAndFromString
。
我试过这个,它适用于Int
等等。但它不适用于Tubbies
. 我看不到让所有RawRepresentable
地方RawValue: LosslessStringConvertible
也符合LosslessStringConvertible
.