ios - 如何在 Swift 中制作自定义关系运算符

标签 ios swift operators

我正在使用范围为 0..<360 的 double .我想创建一个包含 8 个案例的 switch 语句。 0、90、180 和 270 的情况,以及介于两者之间的值的情况。半开运算符似乎不能满足我在这里要做的事情。我认为解决方案可能是创建一个自定义关系运算符。我们称它为<..<

case 0:
case 0<..<90:
case 90:
case 90<..<180:
case 180:
case 180<..<270:
case 270:
case 270<..<360:

我研究过创建一个返回 Bool 的自定义中缀运算符但这是行不通的,因为参数将只包括 lhs 和 rhs。

我怎样才能做到这一点?

最佳答案

您的开关不必要地复杂。看看这是否适合您:

let value: Double = 180

switch value {
    case 0:
        print("exactly 0")
    case 0..<90:
        print("less than 90")
    case 90:
        print("exactly 90")
    case 90..<180:
        print("less than 180")
    case 180:
        print("exactly 180")
    case 180..<270:
        print("less than 270")
    case 270:
        print("exactly 270")
    default:
        print("less than 360")
}

关于ios - 如何在 Swift 中制作自定义关系运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39625260/

相关文章:

ios - 以编程方式调用时,Popover Segue 崩溃

swift - 无法添加从 Button 到 ViewController 的 Outlet 连接

swift - 通过选择器 setProperty 设置 nsobject 子类的属性

ios - AVCapture 任意形状镜头

javascript - CoffeeScript 中的 ?= 与 ||=

ios - 如何按名称对 nsdocumentdirectory 中的文件进行排序?

iphone - 添加声音到 Xcode 4.3

ios - AFNetworking 3.0 多部分请求

c# - 为什么有人会在枚举声明中使用 << 运算符?

swift - 如何使用 ** 用于指数使用 @infix func **( )?