Я работаю с парными, которые имеют диапазон 0..<360
. Я хочу создать оператор switch, который будет иметь 8 случаев. Случай для 0, 90, 180 и 270 и случай для значений между ними. Кажется, что полуоткрытый оператор не удовлетворит то, что я пытаюсь сделать здесь. Я думаю, что решение может заключаться в создании пользовательского реляционного оператора. Давайте назовем это <..<
Как сделать собственный реляционный оператор в Swift
case 0:
case 0<..<90:
case 90:
case 90<..<180:
case 180:
case 180<..<270:
case 270:
case 270<..<360:
Я посмотрел в создании пользовательского оператора инфиксную, который возвращает Bool
, но это не будет работать, потому что аргументы будут включать в себя только левой и правой частях.
Как это сделать?
Случаи не обязательно должны быть взаимоисключающими, они проверяются в определенном порядке, а первый выигрывает. У вас может быть «случай: 0», за которым следует «case: 0 .. <90'. –
Спасибо @MartinR. Это отлично работает. – MyBikeIsAwesome
Мне очень любопытно посмотреть, не попадаете ли вы когда-нибудь на номера в реальной жизни. Я подозреваю, что вы получите диапазоны, стреляющие больше всего? –