Magic number? IN MY PROGRAM??? Ну и в идеале, канешн, это предикат. Т.е if ( isQueueFull(myQueue))... и boolean isQueueFull(queue) { return queue.length >= QUEUE_LENGTH; }
В этом смысле - да. По-моему, сравнивать неизвестное с известным (а не наоборот) логично для тех, кто пишет слева направо. Интересно было бы посмотреть на то, как пишут китайцы или израильтяне.
В языке-то в каком? Первый вариант применяют труъ программеры на старом хардкорном Си (который ещё K&R), дабы избежать ошибок вида "if(a=5) {do_something();}" Правда, в именно в твоем случае (сравнение вычисляемого с константой) компилятор, скорее всего, скажет что-то вроде "lvalue required". Ну еще вещественные числа так сравнивать нельзя, надо так "if(abs(somefunc() - 10.0) < epsilon). В большинстве остальных случаев, IMHO, второй вариант самый наглядный.
Если подумать... Если приходится сравнивать результат функции с _одной_ константой, то что-то спроектировано не так.
Так что в норме либо case по всему набору возможностей, либо pattern match, что по сути одно и то же.
Нет, разумеется, бывают отдельные случаи, когда задача такова, или (чаще) когда язык настолько беден, что приходится иметь константы, обозначающие другие варианты алгебраического типа (типа 0 в качестве N/A).
Page 1 of 4