|
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
да, нет, по фигу
Друзья, помогите советом.
У меня регулярно возникает ситуация, когда для какой-то переменной, изначально задуманной и объявленной в качестве Boolean, начинает резко не хватать двух положений. Например, для действия с предметом экипировки может быть 2 варианта: надеть (true) или снять (false). Но чуть только появляется условный вариант "оставить без изменений", вся система рушится. Практический вопрос, что вы думаете на счёт использования значения null для переменных типа Boolean? Мне пока сильно не понравилось, в первую очередь из-за того, что начинаешь путаться в краткой форме записи проверки if(value). Пока для себя придумал вариант с объявлением таких переменных как String и присвоении им текстовых строк "true", "false" или понятный строковый null, если ничего менять не надо. Правда, такое решение выглядит тоже как-то не айс...
__________________
Не сломано - не чини! |
|
|||||
А нельзя построить модель так, чтобы просто не дергать значение, если оно без изменений?
Либо можно подставлять имеющееся значение экипировки, то есть при public function set equipmentEnabled(value: Boolean): void { if (value === this._equipmentEnabled) return; this._equipmentEnabled = value; } public function get equipmentEnabled(): Boolean { return this._equipmentEnabled; } Если такой вариант не подходит, в любом случае лучше пользоваться не строками, а идентификаторами от нуля до двух. 0=false, 1=true, 2=return
__________________
while(live()) { hope(); } |
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
Цитата:
Цитата:
__________________
Не сломано - не чини! |
|
|||||
Регистрация: Apr 2018
Сообщений: 42
|
Цитата:
Ты можешь объявить тип переменной Object и тогда сможешь использовать для неё как true, false, так и null, но о безопасности типа тогда говорить не приходиться. А вообще попахивает каким-то бредом. Зачем вообще что-то делать, если ничего делать не надо? |
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
RedHead90, всё, понял-отстал. Спасибо. Это ты верно напомнил определение типа Boolean.
Вопрос снят, я фигню сморозил.
__________________
Не сломано - не чини! |
|
|||||
1. Название тему не отражает сути вопроса!
2. Смотрите, что такое битовые маски.
__________________
местонахождение |
|
|||||
3. Либо Enum. В as3 его нет, реализуется просто через Int с классом статических констан (Status.UNKNOWN, Status.ENABLED, Status.DISABLED)
Цитата:
__________________
Дети не должны знать о своих родителях |
|
|||||
ага. Все ж я бы пересмотрел подход, чтобы не было необходимости что-то делать, когда делать чего-то не надо
__________________
while(live()) { hope(); } |
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
ZergMaster, в первом сообщении я привёл не конкретный пример, а наиболее наглядный для краткой иллюстрации сути вопроса. Не парься.
Если интересно, подобная ситуация на практике у меня возникла, когда потребовалось применять не одиночное значение да/нет, а профиль из нескольких, который имеет свой персональный ID и объединяет их в некую осмысленную комбинацию. Вот тут и всплывает проблема того, что раньше при отсутствии изменений можно было действительно просто ничего не делать, а теперь стало нельзя!
__________________
Не сломано - не чини! |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Цитата:
Описать одно из трёх значений оно не сильно поможет
__________________
Тут мужик танцует и поёт про флэш |
Часовой пояс GMT +4, время: 21:30. |
|
« Предыдущая тема | Следующая тема » |
|
|