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

Наверное, то, что вы действительно хотите, это просто способ не иметь суффикса вообще. Лучший способ, которым я нашел это, - использовать директиву Files в .htaccess или в файлах конфигурации apache:

<Files myscript>
   SetHandler cgi-script
</Files>

Это позволяет избежать некоторых недостатков перезаписи, например, прямого доступа к .php.

36
задан alex 10 May 2013 в 03:25
поделиться

5 ответов

Просто переключите каждый раз он называется

this.boolValue = !this.boolValue;
30
ответ дан 27 November 2019 в 03:58
поделиться
private boolean negate(boolean val) {
    return !val;
}

Я думаю, это то, о чем вы просите ??

3
ответ дан 27 November 2019 в 03:58
поделиться
value ^= true;

Это значение xor-equals true, которое будет менять его каждый раз без каких-либо переменных ветвления или временных переменных.

116
ответ дан 27 November 2019 в 03:58
поделиться

Не глядя на него, установить не себя. Я не знаю, как это написать на Java, но в Objective-C я бы сказал

booleanVariable = !booleanVariable;

. Это переворачивает переменную.

47
ответ дан 27 November 2019 в 03:58
поделиться

Если предположить, что ваш код выше - это реальный код, то у вас две проблемы:

1) ваши операторы if должны быть '==', а не '='. Вы хотите выполнить сравнение, а не присваивание.

2) Второе if должно быть 'else if'. Иначе, когда оно будет ложным, вы установите его в true, затем второе if будет оценено, и вы снова установите его в false, как вы описали

if (a == false) {
  a = true;
} else if (a == true) {
  a = false;
}

Еще одна вещь, которая еще больше упростит задачу, это оператор '!':

a = !a;

переключит значение a.

17
ответ дан 27 November 2019 в 03:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: