给定该方法
func enumCaseCount<T: Hashable>(ofType type: T.Type) -> Int {
// Needed check if type is an enum type
return 3
}
使用方式如下:
private enum SimpleEnum: String {
case a = "A"
case b = "B"
case c = "C"
}
enumCaseCount(ofType: SimpleEnum.self)
有什么方法可以检查给定的元类型是否为枚举?
可以通过以下方式测试类
class Test {}
Test.self is AnyClass // returns true
T
是一个enum
时,MemoryLayout<T>.size
报告0
字节的任何见解?在 Swift 中,即使RawValue
具有非零大小,enum
是否被认为是零大小类型? - dfribRawValue
类型;即使是具有多字节大小的Int
(8
)),也会报告单个字节1
。对于具有关联值的枚举,似乎更连贯:单例枚举报告单个情况的关联值总和的大小,而多例枚举报告大小,就像联合一样(最大情况大小)加上一个字节。对于不持有关联值的枚举来说,这种奇怪的大小报告方式。 - dfrib