|
|
|||||
Регистрация: Jun 2008
Сообщений: 126
|
Присваиваем значение после проверки
В чужих библиотеках иногда встречаю следующее:
Вместо пишут Почему так делают? someVar = false выделяет память, поэтому его избегают, или что? |
|
|||||
Да ерунда это, просто лишний код, не обращайте внимания. Память под переменную булевского типа была выделена в момент создания экземпляра класса, в котором она была объявлена. Что же до скорости выполнения, то я думаю что блок if вряд ли выполняется быстрее присвоения, а мы явно видим что тут нам может потребоваться выполнить и то и другое. А можно просто всегда присваивать. Короче говоря, кто-то слишком мало спал и слишком много работал =)
__________________
...вселенская грусть |
|
|||||
Регистрация: Feb 2012
Сообщений: 1,540
|
Это бессмысленная запись, не обращайте внимания.
|
|
|||||
Регистрация: Jun 2008
Сообщений: 126
|
ясно, спасибо
|
|
|||||
listener
|
Цитата:
Суть вопроса не ясна, сравнение - это сравнение, объявление - это объявление, присвоение - это присвоение. Каким боком они тут пересеклись? |
|
|||||
Регистрация: Mar 2007
Сообщений: 319
|
someVar может быть аксессором и при присвоении значения может диспатчить событие или ещё что то тяжелое делать, нужно больше информации чтоб сказать нужно/ненужно
|
|
|||||
Регистрация: Jun 2008
Сообщений: 126
|
Про такие вот случаи что скажете?
Пример из движка FlashPunk. Класс net.flashpunk.utils.Input.as /** * If the mouse button was pressed this frame. */ public static var mousePressed:Boolean = false; /** * If the mouse button was released this frame. */ public static var mouseReleased:Boolean = false; // ... public static function update():void { // ... if (mousePressed) mousePressed = false; if (mouseReleased) mouseReleased = false; // ... } Я просто еще думал может false это на самом деле создание в памяти объекта типа Boolean, который потом кинем в someVar. И строчка someVar = false будет генерить объект в памяти. |
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Сказать про такой случай можно лишь -
1) Проверьте скорость выполнения. 2) Так правильней. |
|
|||||
Регистрация: Feb 2012
Сообщений: 1,540
|
Цитата:
Смысл плодить проверки? *Только что несколько раз измерил скорость выполнения, разница (и то небольшая) видна только после 100000000 итераций* Добавлено через 2 минуты Цитата:
Boolean, насколько я знаю - Кстати, if(someVar) равняется if(someVar == true), то есть тут тоже по вашему "создаётся объект true". Последний раз редактировалось MikroAcse; 05.09.2014 в 16:19. |
|
|||||
Регистрация: Mar 2007
Сообщений: 319
|
|
Часовой пояс GMT +4, время: 18:08. |
|
« Предыдущая тема | Следующая тема » |
|
|