Тема: if (a == true)
Показать сообщение отдельно
Старый 23.05.2012, 12:01   #6  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
376 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
ну да, для типизированных языков, конструкция сравнения с константами избыточна, но не смертельна, лишь бы логически верный результат был и ожидаемое поведение.

Но к примеру на JavaScript, можно просто завести переменную, не инициализировать ее и фактически будет три значения true, false, null поэтому для упрощения можно использовать сравнение с какой либо константой, отметая два других значения, например, != true.

X++:
var flagTest;
//..
flagTest=$("CheckBoxTest").selected;
//...

if(flagTest !=true) {

}
И еще в C# существует хитрый тип bool? - логический с null(bool + null), так вот такая рода конструкция, в C# просто не откомпилируется, потребует явного приведения типа

X++:
bool? test = null;

if (test)
{ 
            
}
тогда как
X++:
bool? test = null;

if (test == true)
{ 
            
}
не вызовет никаких нареканий, примечательно, что такое неявное преобразование работает насколько я понимаю только для типа bool?, например если во втором случае написать int, то ничего не прокатит
__________________
Sergey Nefedov

Последний раз редактировалось SRF; 23.05.2012 в 12:04.
За это сообщение автора поблагодарили: fed (2).