Бесполезные скобки в выражениях
Бесполезные скобки в коде, не влияющие на логику работы программы, создают лишнюю нагрузку на программиста, поддерживающего и дорабатывающего этот код. Использования бесполезных скобок следует избегать.
Например:
Если ((((Количество * Цена) - 1) * 100) <> 0) Тогда
ЧтоТоСделать();
КонецЕсли;
Если ((Выходной И Праздничный) ИЛИ Рабочий) Тогда
ЧтоТоСделать();
КонецЕсли;
Правильно:
Если (Количество * Цена - 1) * 100 <> 0 Тогда
ЧтоТоСделать();
КонецЕсли;
Если Выходной И Праздничный ИЛИ Рабочий Тогда
ЧтоТоСделать();
КонецЕсли;
Особенности:
-
Параметр
Находить лишние скобки в соответствии с приоритетом выражений (арифметических и логических)
позволяет отключить проверку скобок в составных арифметических и логических выражениях. В этом случае проверка будет находить только лишние внешние скобки и скобки, обрамляющие единичные операторы и выражения. -
Параметр
Разрешено окружать скобками операции сравнения
позволяет разрешить использование скобок у единичных операторов сравнения. В этом случае подобные конструкции будут считаться корректными:
ПовторноеЧтение = (Кэш <> Неопределено);
ЭтоОтчет = (Объект.Вид = ВидДополнительныйОтчет) ИЛИ (Объект.Вид = ВидОтчет);
- В составных арифметических и логических выражениях проверка игнорирует скобки в операциях равных приоритетов, если скобки используются во втором операторе и далее. Таким образом исключены ложные срабатывания в операциях конкатенации, например:
ВывестиСообщение("Информация: " + (ИндексСтроки - 1));
См. также
Экранирование кода
// sonar:UselessParenthesis:off
// sonar:UselessParenthesis:on