Добавлен , опубликован
Статья
Раздел:
Триггеры и объекты
Содержание:
Эта статья для тех, кто знаком хотя бы с jass. И пытается научиться программированию по lua.

Немного о Lua

Lua ([луа], порт. «луна») — интерпретируемый язык программирования, разработанный подразделением Tecgraf Католического университета Рио-де-Жанейро.
По возможностям, идеологии и реализации язык ближе всего к JavaScript, однако Lua отличается более мощными и гораздо более гибкими конструкциями. Хотя Lua не содержит понятия класса и объекта в явном виде, механизмы ООП, включая множественное наследование, легко реализуются с использованием метатаблиц.
Язык широко используется для создания тиражируемого программного обеспечения (на нём написан графический интерфейс пакета Adobe Lightroom). Также получил известность как язык программирования уровней и расширений во многих играх (например, World of Warcraft) из-за удобства встраивания, скорости исполнения кода и лёгкости обучения.

Источники

Здесь приложены очень хорошие источники. Скажу, что в интернете очень много хороших примеров и источников. Можно и самим найти. Но здесь, я дам ссылки на хорошие источники
учебник по луа => очень хороший и подробный учебник. Тут больше, чем нужно для информации. Для начинающего может быть сложно. это более подробная инфа, мб кому-то лень читать
справочник луа => краткий справочник для тех кому лень. хорошие примеры по луа. много библиотек с примерами, функциями и пр.
небольшой мануал по луа => это еще один справочник по луа
буржуйский справочник на англ
в интернете полно онлайн-программ для проверки кода
онлайн демо-луа => жалко, что не показывает номер строки и не привычный дизайн оформление немного отталкивает. долго грузится. хотя все онлайн кажется грузятся.
еще одна
самая неплохая

Скрипты в Lua

Написанный на Lua скрипт не имеет какой-либо специальной функции, с которой начиналось бы его выполнение. Скрипт можно рассматривать просто как набор команд (инструкций), который выполняется, начиная с первой инструкции.
Скрипт может быть как очень простым, состоящим всего из одной команды, так и весьма сложным, содержащим десятки, сотни и даже тысячи инструкций. Следующие друг за другом инструкции могут разделяться точкой с запятой (;). Однако это требование не является обязательным, поэтому весь приведённый ниже код является корректным с точки зрения синтаксиса:
a = 1; b = 2
a = 1 b = 2
a = 1;
b = 2;
a = 1
b = 2

`
ОЖИДАНИЕ РЕКЛАМЫ...
18
Для того чтобы легко поддерживать хоть сколько то большой проект на lua необходимы подсказки типов. А те typechecker которые есть сейчас не имеют возможности описывать generic типы.
Из за того что стандартный тип table имеет разные порядок при обходе через pairs() на разных ПК, это критически требует создания собственных коллекций просто чтобы начать хранить данные, а без generic типов поддержка коллекций быстро превратится в ад
26
Для того чтобы легко поддерживать хоть сколько то большой проект на lua необходимы подсказки типов. А те typechecker которые есть сейчас не имеют возможности описывать generic типы.
Из за того что стандартный тип table имеет разные порядок при обходе через pairs() на разных ПК, это критически требует создания собственных коллекций просто чтобы начать хранить данные, а без generic типов поддержка коллекций быстро превратится в ад
у меня довольно объёмный проект на луа, как то справляюсь без коллекций и пейрсов
из плагинов только EmmyLua
38
Vlod, да кстати дичь полнейшая, что близзы не делают, получается калашников неюзабельное

Hate, а как справляешься с десинками?
26
Vlod, да кстати дичь полнейшая, что близзы не делают, получается калашников неюзабельное

Hate, а как справляешься с десинками?
какими десинками?) их нет
38
У меня реджектят наработки на хайве из-за наличия pairs, патч как раз выпустил
26
У меня реджектят наработки на хайве из-за наличия pairs, патч как раз выпустил
если не использовать pairs для логики игры, то и десинкать не будет

у меня наверное pairs и ipairs в паре мест используется, но не для логики
Чтобы оставить комментарий, пожалуйста, войдите на сайт.