Я думаю, что версия if (false == ... более читабельна. Вы согласны или можете предложить другой трюк?
Вы делаете это неправильно.
false == x
возвращает логическое значение, которое, очевидно, должно сравниваться с true
!
if (true == (false == x)) { ...}
будет лучше. Но это снова возвращает bool, поэтому, чтобы быть в безопасности и сделать ваш код более читабельным, нам лучше сделать это:
if (true == (true == (false == x))) { ...}
. И так далее. Как только вы начнете сравнивать логические значения с логическими, где вы остановитесь? Результат всегда будет другим логическим значением, и чтобы быть последовательным, вы должны сравнить это с логическим значением.
Или вы можете научиться понимать язык, на котором вы работаете, и использовать if (!x) { ...}
, который выражает именно то, что вы хотели.
Что вы на самом деле считаете более читабельным?
if (false == x) { ...}
переводится как «Если это правда, что false равно x».
if (!x) { ...}
переводится как «если x не соответствует действительности».
Можете ли вы честно, серьезно, действительно сказать, что первая форма "более читабельна"? Вы когда-нибудь сказали бы это в предложении? «Если это правда, что ложь равна х»?
Он не более читабелен, он просто кричит любому программисту, читающему ваш код: «Я не понимаю, являются ли операторы или логические значения».