'emun' 在我看来像是一个关键字或原始类型。 显然以下代码无法编译:
if self is enum {
}
但是我怎样才能检查某个协议(protocol)是否由任何枚举实现?
protocol Enumatable {
}
extension Enumatable {
func isEnum() -> Bool {
return self is enum //it does not compile
}
}
但我真正想要的是在协议(protocol)中设置某种约束以强制采用类是枚举。这可能吗?
谢谢!
最佳答案
我不确定使用 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")
}
}
关于swift - 如何检查实例是否为枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35736317/