Проверка логического значения в Actionscript на нуль

#actionscript #boolean

#actionscript #логическое

Вопрос:

У меня есть логическая переменная в Actionscript 3.

Как я могу проверить, не определено ли оно (не по значению false), потому что false — это значение, или логическое значение в Actionscript по умолчанию равно FALSE >

Комментарии:

1. Логическое значение по определению означает либо true, либо false. Если логической переменной не присвоено значение, как вы упомянули, по умолчанию оно равно false. Как насчет использования числа (которое имеет NaN в качестве значения по умолчанию)? Или значение int с установленным ‘undefined’ значением, которое вы создаете? Кстати, 0% accept для всех этих вопросов звучит не очень обнадеживающе.

Ответ №1:

Если вам нужно логическое значение, которое может быть неопределенным (по сути, флаг трех состояний), вы можете использовать Object ссылку, но просто присвоите ей Boolean значения true и false . Недостатком является то, что вы теряете безопасность типов.

 var isSet:Object = null;
// Later...
isSet = true;
  

Комментарии:

1. правильно, независимо от того, насколько сильно вы хотите присвоить переменной Boolean значение null, по умолчанию для нее будет установлено значение false. 🙂

Ответ №2:

В ActionScript Boolean может иметь либо true , либо false только значение. Если вы не укажете какое-либо значение, по умолчанию оно инициализируется на false .

Редактировать: Это поведение отличается от Boolean объектного типа Java, который является оболочкой поверх примитива boolean . Смотрите комментарии @Victor ниже

Комментарии:

1. Но в Java вы получаете Null, если инициализируете объект Boolean

2. Boolean является оболочкой ссылочного типа для boolean примитивного типа. Следовательно, его неинициализированное значение по умолчанию равно null .

3. @SSF4Negative_Zero — но ваш вопрос был не о Java; вы не можете ожидать, что все языки будут работать одинаково.

4. Обратите внимание, что комментарий от @VictorZamanian относится к Java, а не к AS3

5. в flex все по-другому. мой опыт показывает, что независимо от того, насколько сильно вы задаете переменной Boolean значение null, по умолчанию для нее будет установлено значение false.