Tengo una enumeración y un interruptor con todos los casos, y estoy usando este interruptor dentro de una función personalizada, en la mayoría de los casos de cambio, devuelvo el mismo valor, me gustaría optimizar mi código por menos código y más limpio posible. Con mantener y usar Enum y switch.
enum Test { case a, b, c, d, e, f, g, h, i } func testFunction(value: Test) -> Int { switch value { case .a: return 1 case .b: return 1 case .c: return 1 case .d: return 2 case .e: return 2 case .f: return 2 case .g: return 3 case .h: return 3 case .i: return 3 } }Puedes escribir tu enumeración así:
enum Test { case a, b, c, d, e, f, g, h, I var value: Int { switch self { case .a, .b, .c: return 1 case .d, .e, .f: return 2 case .g, .h, .i: return 3 } } }Si sus casos están en una secuencia, puede hacer que su enumeración se ajuste a Comparable y hacer
func testFunction(value: Test) -> Int { switch value { case .a...(.c): return 1 case .d...(.f): return 2 default: return 3 } }Usar coma:
func testFunction(value: Test) -> Int { switch value { case .a, .b, .c: return 1 case .d, .e, .f: return 2 case .g, .h, .i: return 3 } }