Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.11.2010, 15:44
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 1  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
orcpochta, а что если вместо ... было бы жестко забито false? Тогда и if писать не надо.
Я выше писал, что код пишется исходя из задачи.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 26.11.2010, 15:45
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 2  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Мне показалось, что только у одного человека может возникнуть такое предположение, что стоит объяснять как из n вложенных if-ов сделать один - ну согласитесь же, что такой вопрос бы даже школьник не задал - если он, конечно, не только вчера начал учиться программировать)))
__________________
скриптограф

Старый 26.11.2010, 15:49
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 3  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
orcpochta, задачу надо раскрывать. Я сижу и вижу, что в текущей задаче, ни один из способов не оптимален. И я не должен ломать голову почему вы третий вариант не предложили)
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 26.11.2010, 15:51
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 4  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Ну, с условием, вроде, разобрались - так какой будет вердикт? Красивый код Vs. мгновенный выход в "точке ясности"?)))
__________________
скриптограф

Старый 26.11.2010, 16:39
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
orcpochta, ваше предположение оказалось не верным.
Цитата:
Первый вариант приятней читать - нет грязи, в нем нет дублирующегося кода - все вроде четко, ясно и аккуратно, но (!) второй вариант по идее должен работать быстрее, т.к. возврат из ф-ии происходит в "точке ясности" (назову это так) - т.е. если в первом варианте мы дошли до вложенного if-a и не вернули в итоге obj, то нам придется проделать весь путь обратно по стеку вложенности до единственного return null, а во втором варианте выброс происходит сразу без обратного пути
Есть первый код
Код AS3:
var a:Boolean = true;
var b:Boolean = true;
var c:Boolean = true;
var o:Object = {};
function test ():Object {
	if (a) {
		if (b) {
			if (c) {
				return o;
			}
		}
	}
	return null;
}
его байт код такой
Код:
public function test():Object {
	_as3_getlocal <0> 
	_as3_pushscope 
	_as3_getlex a
	_as3_iffalse offset: 15[#11]
	_as3_getlex b
	_as3_iffalse offset: 9[#11]
	_as3_getlex c
	_as3_iffalse offset: 3[#11]
	_as3_getlex o
	_as3_returnvalue 
#11	_as3_pushnull 
	_as3_returnvalue 
}
Есть второй код
Код AS3:
var a:Boolean = true;
var b:Boolean = true;
var c:Boolean = true;
var o:Object = {};
function test ():Object {
	if (a) {
		if (b) {
			if (c) {
				return o;
			} else {
				return null;
			}
		} else {
			return null;
		}
	} else {
		return null;
	}
}
байт код такой
Код:
public function test():Object {
	_as3_getlocal <0> 
	_as3_pushscope 
	_as3_getlex a
	_as3_iffalse offset: 27[#17]
	_as3_getlex b
	_as3_iffalse offset: 15[#14]
	_as3_getlex c
	_as3_iffalse offset: 3[#11]
	_as3_getlex o
	_as3_returnvalue 
#11	_as3_pushnull 
	_as3_returnvalue 
	_as3_jump offset: 2[#16]
#14	_as3_pushnull 
	_as3_returnvalue 
#16	_as3_jump offset: 2[#1]
#17	_as3_pushnull 
	_as3_returnvalue 
}
Как видим, первый код короче, а делает тоже самое.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 26.11.2010, 17:01
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 6  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Круто, я не учел, что есть промежуточное звено - компилятор, который ставит на нет все мои домыслы))))

Но! Если я буду писать это в конструкторе, то буду прав - там ведь интерпретация?

Черт, я запутался... у меня всегда были траблы с пониманием того, как устроены всякие компиляторы, интерпретаторы, байт-код и т.д. Что можно об этом хорошего почитать, чтобы мозги на место встали?
__________________
скриптограф

Старый 26.11.2010, 17:10
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Если я буду писать это в конструкторе
А что, у нас можно вернуть в конструкторе ?)
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 26.11.2010, 17:11
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 8  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от iNils Посмотреть сообщение
А что, у нас можно вернуть в конструкторе ?)
блин...
__________________
скриптограф

Старый 26.11.2010, 17:11
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 9  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
везде все компилируется, а в конструкторе интерпретируется... с чего бы? )

Старый 26.11.2010, 17:13
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 10  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от i.o. Посмотреть сообщение
везде все компилируется, а в конструкторе интерпретируется... с чего бы? )
такова тяжелая доля флеш-плеера)))
__________________
скриптограф

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:50.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.