Значение по умолчанию для соглашения логического флага - PullRequest
0 голосов
/ 05 января 2019

Я хочу понять, должны ли мы называть логические переменные так, чтобы по умолчанию для них было установлено значение «ложь», пока они не были явно инициализированы как «истина»? Мне всегда нравится программировать интуитивно, поэтому я предпочитаю следовать этой практике.

Но есть разные ответы, которые я видел в этой другой ветке: Почему значение по умолчанию для логической переменной имеет тенденцию быть ложным?

Вот пример того, почему я бы хотел, чтобы значение логического значения по умолчанию было установлено в false:

Скажем, я хочу добавить тег в XML-файл, который мой код Java читает в логический флаг. Этот флаг используется для определения того, следует ли выполнить конкретное действие для рабочего процесса или нет. По умолчанию действие выполняется всегда. Существует несколько XML-файлов - по одному на рабочий процесс.

Некоторые параметры для именования тега xml:

1) doNotPerformCertainAction : Преимущество : Интуитивно понятный - поскольку по умолчанию 1), когда тег xml отсутствует, естественно предположить, что соответствующий логический Java-код не установлен и поэтому интерпретируется как «ложный». Если мне придется переопределить поведение по умолчанию, я добавлю этот тег в xml и помечу его как «true».

Недостаток : отрицательное имя флага

2) doPerformCertainAction : Преимущество : неотрицательное имя флага. Недостаток : не интуитивно понятный - в этом случае мы должны будем присвоить «true» в качестве значения по умолчанию для логического флага java. А в случае переопределений я добавлю этот тег в соответствующий xml и установлю его с помощью «false» (а не true!). Это сбивает с толку, так как для других xmls, где тег не указан, пользователи могут подумать, что логический флаг doPerformCertainAction не инициализируется и должен получить значение по умолчанию 'false' - тогда как в действительности мы по умолчанию устанавливаем его в 'истинный'.

Какими должны быть предпочтения, по вашему мнению?

...