“‘emun”在我看来像是一个关键字或原始类型。很明显,下面的代码不能编译:
if self is enum {
}但是,我如何能够检查某个协议是否由任何枚举实现?
protocol Enumatable {
}
extension Enumatable {
func isEnum() -> Bool {
return self is enum //it does not compile
}
}但我真正想要的是在协议中设置某种约束,以强制采用类为枚举。这有可能吗?
谢谢!
发布于 2017-10-03 03:10:44
我不确定使用Mirrors的性能如何。但这是你要说的:
enum SomeEnum {
case one
case two
}
let mirror = Mirror(reflecting: SomeEnum.one)
if let displayStyle = mirror.displayStyle {
switch displayStyle {
case .enum:
print("I am an enum")
default:
print("not an enum")
}
}https://stackoverflow.com/questions/35736317
复制相似问题