Cómo hacer un operador relacional personalizado en Swift

Estoy trabajando con dobles que tienen un range de 0..<360 . Quiero crear una statement de cambio que tendrá 8 casos. Un caso para 0, 90, 180 y 270, y un caso para los valores intermedios. Parece que el operador medio abierto no satisfará lo que bash hacer aquí. Estoy pensando que la solución puede ser crear un operador relacional personalizado. Llamémoslo <..<

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

He estudiado la posibilidad de crear un operador de infijo personalizado que devuelva un Bool pero que no funcionará porque los arguments solo includeían lhs y rhs.

¿Cómo puedo lograr esto?

Su conmutador es innecesariamente complicado. Vea si esto funciona para usted:

 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") }