Это чисто педантичный вопрос, чтобы выразить свое любопытство.
Я склоняюсь к последнему варианту в вопросе (так: if (boolCheck) { ... }
), а коллега всегда пишет первый (if (boolCheck == true) { ... }
). Я всегда его дразнил, и он всегда объяснял это как старую привычку, когда он начинал программировать.
Но мне сегодня пришло в голову, что на самом деле выписать всю часть == true
может потребовать дополнительный шаг для обработки, поскольку любое выражение с оператором ==
оценивается по булевскому значению. Это правда?
Другими словами, как я понимаю, опция без строки == true может быть описана следующим образом:
- Проверить X
Пока опция с, строка == true будет больше похожа:
- Пусть Y истинно, если X истинно, иначе false
- Проверить Y
Правильно ли я? Или, может быть, любой нормальный компилятор/интерпретатор покончит с этим различием? Или я что-то не замечаю, и на самом деле никакой разницы нет?
Очевидно, не будет никакой разницы в показателях фактической наблюдаемой работы. Как я уже сказал, мне просто интересно.
EDIT: Спасибо всем, кто опубликовал собранные результаты, чтобы проиллюстрировать, были ли разные шаги между этими двумя подходами. (Похоже, в большинстве случаев они были, хотя и незначительно.)
Я просто хочу повторить, что я не спрашивал, что такое "правильный" подход. Я понимаю, что многие люди предпочитают друг друга. Я также понимаю, что, по логике, они идентичны. Мне было просто интересно, если фактические операции, выполняемые процессором, точно такие же для обоих методов; как выясняется, большую часть времени (очевидно, это зависит от языка, компилятора и т.д.), это не так.