我希望实现某种风格的枚举语法/功能,但是我不确定如何实现它。目前我有以下内容:
internal enum Timeframe: Equatable {
// MARK: - Cases
case hour(count: Int)
case day(count: Int)
case week(count: Int)
case month(count: Int)
case year(count: Int)
case all
case exact(date: Date)
case unspecified
}
我想消除与计数相关的值,除非它是必需的。例如:
let oneDayTimeframe: Timeframe = .day
let twoDayTimeframe: Timeframe = .day.multiplied(by: 2)
这可能吗?即使没有办法完全实现我正在寻找的东西,我也会感谢有关潜在改进的建议。在大多数情况下,我最终使用 (count: 1),这似乎有点冗长。如果默认值可与关联值一起使用,我会使用
case hour(count: Int = 1)
有什么建议么?