Ответы пользователя по тегу Lua
  • Как вывести табличные значения в LUA?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    1) https://www.lua.org/about.html#name (TL;DR: не LUA, а Lua)
    2) Нужно, всё же, понимать, что вы делаете.
    Когда вы выполняете `:select()`, вы получаете таблицу.
    А ниже вы пытаетесь её конкатенировать (что, в принципе, неправильно даже для `number`-значений, и неплохо бы использовать в этом месте `tostring()`. А в случае же таблицы, чтобы вывести значения нужен цикл.
    Ответ написан
    Комментировать
  • Как проверить синтаксическую правильность скрипта на lua?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    Как вариант, вы можете использовать loadstring/loadfile
    Ответ написан
  • Какие символы не используются в lua?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    можете использовать любые. Просто используйте какой-нибудь готовый темплейтер...
    Ответ написан
    Комментировать
  • Как установить Lua?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    emerge dev-lang/lua
    apt-get install lua5.1 (или 5.2 или 5.3)
    yum install lua

    И так далее.

    // будьте чуть более конкретны в вопросе, пожалуйста.
    Ответ написан
    Комментировать
  • Lua: attempt to index nil value или проблемы с таблицами?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    Для начала, попробуйте объявить o в NEW локально, а не глобально.
    Ну и, если честно, недостаточно кода для тестирования :)
    Ответ написан
    Комментировать
  • Как вынести набор команд в отдельную функцию в lua?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    1) для начала не стоит вызывать require внутри функций.

    2) далее, не стоит засорять глобальное пространство (и автору модуля 'sem' скажите о том же, если его модуль умеет только экспортироваться в глобальное пространство, а не возвращать таблицу методов).

    3) (вариация п.2) используйте локальные переменные как можно чаще, особенно внутри функций. Используйте глобальные только там, где это реально необходимо. Иначе будете напарываться на внезапные коллизии.

    4) у меня, вообще, куча претензий к вашему коду в обоих вставках. От их количества мне уже просто хочется взять и переписать, ничего не объясняя, а потом отвечать на все вопросы о том почему так :)

    5)
    Правильно ли я делаю

    С учётом всего вышеперечисленного, оно должно выглядеть совсем по-другому.
    Ответ написан
  • В чем отличия, какие их функции?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    Первое — это не функция, а шебанг.
    Второе — заружает указанный аргумент и выполняет его как Lua-скрипт (может быть в текстовом виде или в виде байт-кода, скомпилированного в совместимый с текущим интерпретатором формат).
    Третье — эквивалент функции system() в C/C++: выполняет произвольную программу средствами ОС.
    // только вы опечатались и там execute.
    Ответ написан
    Комментировать
  • Как пользоваться LuaDist?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    1) если честно он довольно зря рекомендуемый. И появился в своё время из-за стопора "luarocks". Но последний недавно получил новую жизнь, а luadist наоборот умер. Ну и его мейнтейнеры очень страдали от NIH-синдрома.
    2) Собственно, ваша претензия об остуствии документации должна быть к тому, кто вам его "рекомендовал".
    3) Вы всё равно заходите не с той стороны.
    Если у вас цель — изучать код — просто ставьте IDE для Lua (их несколько, не буду рекламировать), либо любой универсальный IDE с поддержкой подсветки Lua-снтаксиса.
    Если собираетесь так же "компилировать"[1] код, то можете так же поставить LuaRocks (пакетный менеджер для библиотек и утилит на Lua).

    Вот только нужно понимать, что основная ЦА этих утилит — разработчики, которые УЖЕ имеют представление что и как (и, как правило, используют Linux или Mac), поэтому обычному "неискушённому" windows-пользователю (где работу с терминалом как таковую сделали хоть как-то возможной только к win10, не говоря уже о её удобстве) это может показаться непривычным и неудобным.

    P.S. как правило, все подобные команды поддерживают опцию --help (не знаю как собирают для Windows, возможно для него и /? будет)

    [1] в случае LÖVE компиляция = оборачивание кода в zip-архив, опционально для Windows ещё иногда делают упаковку его вместе с love-интерпретатором и lua-интерпретатором в единый исполняемый PE-файл.
    Ответ написан
    Комментировать
  • Знаете хорошие мануалы по языку LUA для чайников?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    1) https://www.lua.org/about.html#name
    Please do not write it as "LUA", which is both ugly and confusing, because then it becomes an acronym with different meanings for different people. So, please, write "Lua" right!

    (Lua это Луна по-португальски, а не аббревиатура)
    2) https://www.lua.org/pil/
    3)
    графические приложения на интерпретируемом языке

    не стоит. Пожалуйста. Очень прошу.
    Ответ написан
    Комментировать
  • Что есть в lua для построения UI?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    Lua-Qt + qt-for-android? :)

    --
    Но всё же я не рекомендую делать UI-приложения на интерпретируемых языках (включая Lua и Python).
    Использовать Lua как язык для расширения функциональности в них — да.
    А вот писать именно приложения на них — моветон :(
    Ответ написан
    Комментировать
  • Lua для машинного обучения?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    Ну, по-моему, ответ очевиден: чем больше "макак" знают язык, тем больше из них начинает считать себя гуру и писать статьи.

    Lua же, при всех его плюшках, основная масса "макак" учить не хочет в том числе из-за его киллер-фичи по сравнению с тем же питоном:
    В то время, как питон старается стать комбайном (как тот же php) и напихать как можно больше всего (чтобы угодить разным вкусам разных макак), Lua старается дать как можно меньше. Т.е. ровно столько, сколько достаточно для того, чтобы ты мог сделать именно то, что нужно тебе без лишнего ненужного хлама.
    Поэтому и вот так:
    $  ps -eL -o m_size,drs,rss,vsz,cmd | grep -E '(python|lua)[^ ]*$'
     5349 21385  3000  21396 lua5.1
     3013 11577   940  12052 luajit
     5354 21404  2992  21416 lua5.2
     5360 21428  3036  21440 lua5.3
     8410 33637  6476  33640 python2.7
     8167 32664  7444  32668 python3.4


    // и это я ещё не включил
    218336 873344 180096 873344 python3.4
    с простейшей программой
    Ответ написан
    Комментировать