Цитата:
Сообщение от
kashperuk
По теме, в Inventory коде добавились еще конструкции вида
if (0 != inventTable.RecId) или if (true == isProductMaster), когда константа идет первой в условии.
Работал у нас парень один из Польши, который до этого писал много на С, и там это повсеместная практика, так как защищает от непроизвольных описок в таких логических условиях (уже забыл конкретные примеры, которые он приводил, когда я первый раз его об этом спросил)
Ну я тоже когда-то много программировал на C. Там всегда есть опасность вместо if(var==1) написать if(var=1). Второй вариант конструкции вполне синтаксически легален, но вместо сравнения, присвоит значение в var, потом результат операции (1) закастует в логическое значение и потом выполнит оператор, поскольку в if() стоит истинное логическое условие. В такой ситуации можно писать условие в вывернутом формате типа if (1==var). Тут уж если нечаянно один знак равенства поставил - компилятор ошибку выдаст.
Но во первых даже в C есть более простое и изящное решение - просто включить варнинги компилятора. Все известные мне компиляторы C, (даже gcc по моему), могут выдавать варнинг при попытке использования оператора присвоения внутри if.
Во вторых - а какое это вообще имеет отношение к Аксапте ? Уж там то нечаянно оператор присвоения в if() не засунешь...