Вопрос примитивный, но все же. Что такого революционного вносит Lua в скриптинг, чего просто невозможно было достичь без него. Из того, что я заметил, анонимные методы, нативные списки и полиморфизм выглядят очень круто. Есть ли что-то еще?
Принятый ответ
Кложуры и передача данных с их помощью в нативные каллбеки от форгрупа и таймеров через анонимные функции.
Динамическая природа языка, позволяющая в любой момент времени заменить любую функцию чем-то другим. Хороший пример - оборачиваем вызов RemoveUnit своей оберткой и делаем какие-то действия перед тем как вызвать настоящий RemoveUnit.
Своеобразное но рабочее ООП.
Таблицы которые одновременно и массив и хештаблица и ассоциативный массив и при этом очень быстро работают.
Передача и хранение функций в параметрах и переменных.
Передача массивов в параметрах.
Метатаблицы и метаметоды, позволяющие переопределять поведение таблиц в разных ситуациях - добавление и получение элементов, различные операторы, вся эта фигня. Пример - можно запилить "класс" вектор и пользоваться векторной математикой без костылей, переопределив для векторов операторы сложения, вычитания, умножения и так далее.
Динамическая природа языка, позволяющая в любой момент времени заменить любую функцию чем-то другим. Хороший пример - оборачиваем вызов RemoveUnit своей оберткой и делаем какие-то действия перед тем как вызвать настоящий RemoveUnit.
Своеобразное но рабочее ООП.
Таблицы которые одновременно и массив и хештаблица и ассоциативный массив и при этом очень быстро работают.
Передача и хранение функций в параметрах и переменных.
Передача массивов в параметрах.
Метатаблицы и метаметоды, позволяющие переопределять поведение таблиц в разных ситуациях - добавление и получение элементов, различные операторы, вся эта фигня. Пример - можно запилить "класс" вектор и пользоваться векторной математикой без костылей, переопределив для векторов операторы сложения, вычитания, умножения и так далее.
Вобще, давно пора завести статью на эту тему и собирать там все мелкие и большие фишечки и возможности Lua в сравнении с JASS.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Показан только небольшой набор комментариев вокруг указанного.
Перейти к актуальным.
0
Показать
nazarpunk
6 лет
0
Показать
PornoMishka, интерпретатор двупроходный.
Таким же образом можно рекурсию делать)
0
Показать
PornoMishka
6 лет
0
Показать
NazarPunk, это очень приятная новость, спасибо! Стало быть, даже Wurst не даст всего того, что у нас есть с 1.31.
0
Показать
nazarpunk
6 лет
0
Показать
PornoMishka:
На данный момент да, но если создатели Wurst сделают интерпретацию на lua, то импорт пакетов из сети будет киллер фичей)
0
Показать
GetLocalPlayer
6 лет
0
Показать
NazarPunk:
У них уже есть форк компилятора из Wurst в Lua, но какого-то реального смысла я в этом не вижу.
0
Показать
nazarpunk
6 лет
0
Показать
GetLocalPlayer:
Я тоже. Притом я люблю публиковать наработки и посему буду сидеть на стандартном редакторе.
1
Показать
GetLocalPlayer
6 лет
1
Показать
Не совсем в тему, но одно из самых существенных отличий - востребованность Lua где-то кроме самого Wc3. JASS дает намного меньше практического опыта и знаний чем боли в одном месте, в то время как Lua воздает по заслугам, поскольку используется как встраиваемый язык во многих других играх, движках, приложениях и пр, позволяя практиковать многие аспекты современного программирования. Lua позволяет расти там, где JASS упирается в потолок.
1
Показать
nazarpunk
6 лет
1
Показать
GetLocalPlayer:
Мне JASS поднял навык костылеписания на заоблачный уровень)
0
Показать
Extremator
6 лет
0
Показать
prog:
Т.е. раньше этого нельзя было сделать? (до LUA)
0
Показать
PornoMishka
6 лет
0
Показать
Extremator, как я понял, там фишка в том, что можно переопределять реализацию в любой момент. Это как если бы у нас была переменная типа code, а в любой момент мы могли бы, например, сделать так:
0
Показать
nazarpunk
6 лет
0
Показать
PornoMishka, это называется динамическая типизация.
0
Показать
MpW
6 лет
0
Показать
GetLocalPlayer, я вот тоже не знаю Lua, ничего кроме jass не изучал. Но интересно)
Показан только небольшой набор комментариев вокруг указанного.
Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.