XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
MyRtZ

offline
Опыт: 6,530
Активность:
Сокращение переменных в фун-ии
Исходя из данных прошлого вопроса я пришел к выводу что лучше использовать переменные из числа аргументов передоваемых в фун-ию, если те имеются и не используются.
Приведу пример:
function a takes item t, integer a, unit u returns nothing
    call SetItemCharges(t,a)
    call UnitAddItem(u,t)
    set a = GetItemUserData(t)
    call SetUnitState(u,UNIT_STATE_MANA,a)
    set u = CreateUnit(GetOwningPlayer(OwnerOfUnit(u)),'XGM',x,y,0.)
    call UnitApplyTimedLife(u,'BHwe',155)
    call UnitAddAbility(u,'Horn')
    call SetUnitAbilityLevel(d,whichAbility,whichLvl)
    set t = CreateItem('XGM',0,0)
    call UnitAddItem(u,t)
endfunction
Лучше, чем:
function a takes item t, integer a, unit u returns nothing
    local integer b = GetItemUserData(t)
    local unit n = CreateUnit(GetOwningPlayer(OwnerOfUnit(u)),'XGM',x,y,0.)
    local item m = CreateItem('XGM',0,0)
    call SetItemCharges(t,a)
    call UnitAddItem(u,t)
    call SetUnitState(u,UNIT_STATE_MANA,b)
    call UnitApplyTimedLife(n,'BHwe',155)
    call UnitAddAbility(n,'Horn')
    call UnitAddItem(u,m)
endfunction
Знаю что переменные в этой функции можно сократить, т.к они используются один-два раза, но речь не об этом.
Какой лучше вариант использования и почему?
Старый 22.10.2011, 19:48
Hanabishi
COOL STATUS
offline
Опыт: отключен
MyRtZ, разница не принципиальна, кому как нравится.
А если так подумать, то наверное первый чем-то лучше:
  • создаётся меньше переменных
  • нет функций по обнулению
Что ведёт к снижению нагрузки (хоть и очень незначительному). Но это в теории, на практике производительность нужно выяснять тестами.
Из минусов - теряются аргументы и код становится менее читабельным (хотя кому минус, а кому плюс).
Старый 22.10.2011, 20:09
MyRtZ

offline
Опыт: 6,530
Активность:
Спасибо, вопросов нет
Старый 22.10.2011, 22:02
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 12:44.