'emun'在我看来像关键字或原始类型。 显然,下面的代码无法编译:
if self is enum {
}
但是我怎样才能检查某个enum是否实现了某些协议?
protocol Enumatable {
}
extension Enumatable {
func isEnum() -> Bool {
return self is enum //it does not compile
}
}
但我真正想要的是在协议中设置某种约束来强制采用类作为枚举。这可能吗?
谢谢!
答案 0 :(得分:0)
我不确定使用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")
}
}