Показать сообщение отдельно
Старый 22.08.2004, 06:32   #5  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Категорически не соглашусь с "мэтрами" :

1. Правила по преобразованию примитивных типов к логическому выражению в условиях, которые X++ унаследовал от C/C++ никто и никогда отменять не будет. Чётко и ясно сказано что нулевое значение аргумента воспринимается компилятором как false, а ненулевое - true, сомневаться в этом - значит проявлять незнание языка и плодить излишне перегруженный конструкциями код.
if ( a )... всегда было и будет предпочтительнее чем if ( a != 0 ) так же как и
if ( !( a < b ) ) выглядит запутаннее и непонятнее, чем if ( a >= b )
(кстати в практике программирования на 1С встречал следующий код:
Если НЕ(ОсталосьСписать>0) Тогда
Прервать;
КонецЕсли;
долго смеялся )

2. То же самое касается и преобразования Common в boolean.
if ( tbl ) выглядит гораздо проще и интуитивно понятнее чем if ( tbl.RecId )
Чем обоснованы рекомендации предпочитать tbl.RecId мне непонятно, ведь если когда нибудь правило преобразования Common в boolean хотя бы слегка изменят, половина кода аксапты станет неработоспособной, посему его никогда не изменят.
В общем я предпочитаю if ( table1 )

Хотя в принципе всё это вопрос вкуса и относится к той же теме что и вопрос о том звёздочками или плюсиками лучше помечать блоки комментариев в коде.