在《斯威夫特2》里有这样的方法吗?
enum Placement: Int, OptionSetType {
case
Left = 1 << 0,
Right = 1 << 1,
Center = 1 << 2,
Top = 1 << 3,
Bottom = 1 << 4,
Middle = 1 << 5
;
....
}
实际的问题是编译器不够聪明,无法看到这些值是常量,但比结果更可读。
那么,是否有一些语法糖允许这样的声明?
最佳答案
正如@Martin R所说,你需要struct。
struct Placement: OptionSetType {
let rawValue: Int
init(rawValue: Int) {
self.rawValue = rawValue
}
static let Left = Placement(rawValue: 1 << 0)
static let Right = Placement(rawValue: 1 << 1)
static let Center = Placement(rawValue: 1 << 2)
static let Top = Placement(rawValue: 1 << 3)
}
关于swift - 有没有一种方法可以定义2的幂的快速枚举(或计算值),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36939394/