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

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

Ответ
 
vladfaust

offline
Опыт: 12,714
Активность:
Public
Проблема вот в чем:
Как использовать функции из другой библиотеки, не requir'уя ее?

Отредактировано inadequate_, 10.12.2011 в 09:46.
Старый 10.12.2011, 10:24
iZucken
ШТО
offline
Опыт: 17,960
Активность:
кароче так:
есть две либы - 1ая и 2ая соответственно.
Если ты в либе 2 юзаеш ф-ции либы 1, то просто "рекуаэрь" её.
Единственная причина, не позволяющая "рекуаэрнуть" либу 1 либой 2 - это если либа 1 косвенно или прямо уже использует ф-ции либы 2.
Т.о., либо ты не выдумываеш и пишеш "library 2 uses 1", либо ты дурак m-|

Отредактировано Q w e r t y, 10.12.2011 в 10:39.
Старый 10.12.2011, 10:26
vladfaust

offline
Опыт: 12,714
Активность:
Возможно, решением является создание переменной функции и вывод этой переменной за пределы библиотеки. Есть такая возможность?
inadequate_ добавил:
Q_w_e_r_t_y, ну а если все-таки надо использовать в 1-й либе функции 2-й либы, а во 2-й - функции 1-й? Что делать?
+ Еще бесит, что бывает так:
1-я использует 2-ю, 2-я - 3-ю, а 3-ей нужна 1-я. И тогда ошибка!
inadequate_ добавил:
+ Какая разница между requires & uses?
Старый 10.12.2011, 10:47
iZucken
ШТО
offline
Опыт: 17,960
Активность:
ты языки не попутал?
жасс это тебе не с++ тут все проще и скуднее
"переменная функции" существует но используется не так как тебе сейчас хочется
вобщем, "главная истина" : любая функция, чтобы использовать какуюто другую, должна быть объявлена после нее. Т.о., библиотека, использующая функции другой, должна быть объявлена после неё. опция "uses" всеголиш переставляет библиотеки местами в коде конечном, упорядочивает функции.
Старый 10.12.2011, 10:47
vladfaust

offline
Опыт: 12,714
Активность:
Uses перемещает либу вниз относительно той, которая юзается?
Старый 10.12.2011, 10:48
iZucken
ШТО
offline
Опыт: 17,960
Активность:
inadequate_:
ну а если все-таки надо использовать в 1-й либе функции 2-й либы, а во 2-й - функции 1-й? Что делать?
+ Еще бесит, что бывает так:
1-я использует 2-ю, 2-я - 3-ю, а 3-ей нужна 1-я. И тогда ошибка!
это твоя задача не допускать такого лол. если у тебя есть функции общие для обоих библиотек, выноси их в третью и пусть те две её используют
разницы между рекуаерс и юзес не знаю честно имхо одно и то же (просто кому как привычней) я лично юзес пишу
Q w e r t y добавил:
inadequate_, да именно так. рекуаерс тоже самое делает.
Старый 10.12.2011, 10:50
vladfaust

offline
Опыт: 12,714
Активность:
Q_w_e_r_t_y, спасибо=)
Старый 10.12.2011, 10:54
spellwerk

offline
Опыт: 4,869
Активность:
inadequate_:
1-я использует 2-ю, 2-я - 3-ю, а 3-ей нужна 1-я. И тогда ошибка!
private keyword f1

void f2() {
	f1()
}

void f1() {
	BJDebugMsg("f1")
}
Старый 10.12.2011, 13:53
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
inadequate_, объявляешь её как паблик, а дальше так
НазваниеЛибы_НазваниеФункции
Например
Код:
library MyLib
    public function NyFunc takes nothing returns nothing
        ...
    endfunction
endlibrary
...
call MyLib_NyFunc()
...
Старый 10.12.2011, 14:10
vladfaust

offline
Опыт: 12,714
Активность:
alexprey, ^^
Не работает
Старый 10.12.2011, 17:22
youtube
сктыщь
offline
Опыт: 8,025
Активность:
inadequate_,
а вот и работает
Старый 10.12.2011, 17:32
vladfaust

offline
Опыт: 12,714
Активность:
Не, если вызывать из другой библиотеки... Не работает.
Старый 10.12.2011, 20:29
Ответ

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

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

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

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



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