Cheb писал(а):В паскале остро не хватает операторов &, | (однозначно побитовые) и &&, || (однозначно булевы)
Почему: and и or
убоги тем, что не позволяют писать логические выражения без костылей-скобок.
- что думаете?
мне кажется, факт того, что язык заставляет тебя расставить скобки, в итоге играет тебе же в плюс.
на самом деле, можно предположить, что в язык добавлены | и & - однозначно побитовые, а "or" и "and" оставлены для однозначно булевых.
НО если, такие операторы добавлены, ТО тебе нужно определить с каким приоритетом они идут:
т.е. выражение a or b | c это:
- Код: Выделить всё
(a or b) | с
или
- Код: Выделить всё
a or (b | c)
В отличии от С-образных языков, паскаль наслаждется всего 5ью уровнями приоритетов операторов. (если кто хочет, то можете погуглить "period table of perl operators").
Так вот, добавив новый уровень тебе придётся держать его в голове, и постоянно помнить его либо стрелять себе в ногу.
Естественно, стрелять ты не захочешь и всё равно будешь ставить скобки.
я часто вижу выражения, вроде:
(a * b)+c
люди делают это для себя. Они прекрасно помнят из школьного курса что умножение идёт вперёд (и компилятор тоже это понмнит), но тем не менее пишут же... для наглядности.