Swift RawRepresentable
Swift
编译器自动为带有raw type
的enum
添加了RawRepresentable
协议的实现。RawRepresentable
协议的定义如代码清单11-1-1所示,它可以为某个类型定义一个关联的raw value
,并在两者之间切换。如下代码所示是一个典型的带raw value
的枚举。
public protocol RawRepresentable {
associatedtype RawValue
public init?(rawValue: Self.RawValue)
public var rawValue: Self.RawValue { get }
}
enum Counter: Int {
case one = 1, two, three, four, five
}
for i in 3...6 {
print(Counter(rawValue: i))
}
// 输出
// Optional(__lldb_expr_197.Counter.three)
// Optional(__lldb_expr_197.Counter.four)
// Optional(__lldb_expr_197.Counter.five)
// nil
参考