Ликбез по Lua

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
User avatar
John Doe
Бюрократ
Posts: 11005
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 60 times

Ликбез по Lua

Postby John Doe » Mon 02 Jul, 2012 05:41

В данной теме задаём вопросы по Lua.

Для того, чтобы получить начальное представление о языке достаточно почитать какую-нибудь короткую обзорную статью, например:
Для более близкого знакомства рекомендую эти документы:

Shmuel
Posts: 4865
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 9 times
Been thanked: 112 times

Ликбез по Lua

Postby Shmuel » Thu 29 Dec, 2016 11:54

Latest post of the previous page:

IgorZ wrote:Source of the post А вот с __len, __ipairs, __pairs что-то, кажется, не так.
Перечисленные метаметоды не работают для таблиц в Lua 5.1, в чём легко убедиться из мануала. Последние два вообще отсутствуют в Lua 5.1.
Если скомпилировать LuaJIT с ключом -DLUAJIT_ENABLE_LUA52COMPAT, тогда эти метаметоды должны работать.

User avatar
Aidar
Posts: 510
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 7 times
Been thanked: 5 times
Contact:

Ликбез по Lua

Postby Aidar » Thu 29 Dec, 2016 16:10

Нашёл полезную статью про некоторые особенности Lua:
Почему мы выбрали LUA, сюрпризы луа
Предлагаю добавить ссылку в первое сообщение темы.

User avatar
John Doe
Бюрократ
Posts: 11005
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 60 times

Ликбез по Lua

Postby John Doe » Thu 29 Dec, 2016 18:51

Когда с этими особенностями сталкиваешься каждый день, то перестаёшь видеть что-то особенное

IgorZ
Posts: 413
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 4 times
Been thanked: 5 times

Ликбез по Lua

Postby IgorZ » Fri 30 Dec, 2016 05:34

Shmuel wrote:
IgorZ wrote:Source of the post А вот с __len, __ipairs, __pairs что-то, кажется, не так.
Перечисленные метаметоды не работают для таблиц в Lua 5.1, в чём легко убедиться из мануала.

Читал мануал по версии 5.1 на lua.org. __tostring там тоже отсутствует, однако, работает при этом. Так что до окончательного прояснения вопроса было (мной) решено ориентироваться на перечисленные в коде библиотеки имена.
Shmuel wrote:Последние два вообще отсутствуют в Lua 5.1.

А вот понадобились. Как раз эти три (ну и кое-что ещё неплохо бы, но эти важнее).
Shmuel wrote:Если скомпилировать LuaJIT с ключом -DLUAJIT_ENABLE_LUA52COMPAT, тогда эти метаметоды должны работать.

Может, сделать это для Far?

Shmuel
Posts: 4865
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 9 times
Been thanked: 112 times

Ликбез по Lua

Postby Shmuel » Fri 30 Dec, 2016 08:19

IgorZ wrote:Source of the post Читал мануал по версии 5.1 на lua.org. __tostring там тоже отсутствует
Заходим на http://www.lua.org/manual/5.1/manual.html и видим, что ваше утверждение ложно.

IgorZ
Posts: 413
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 4 times
Been thanked: 5 times

Ликбез по Lua

Postby IgorZ » Fri 13 Jan, 2017 05:30

Извиняюсь за задержку: праздники, да и почему-то перестали приходить уведомления на почту.
Shmuel wrote:
IgorZ wrote:Source of the post Читал мануал по версии 5.1 на lua.org. __tostring там тоже отсутствует
Заходим на http://www.lua.org/manual/5.1/manual.html и видим, что ваше утверждение ложно.

Захожу на http://www.lua.org/manual/5.1/manual.html, раздел 2.8 – Metatables, вижу такие метаметоды:
  • add
  • sub
  • mul
  • div
  • mod
  • pow
  • unm
  • concat
  • len
  • eq
  • lt
  • le
  • index
  • newindex
  • call
Как видно, len есть, из видно, что для таблиц он должен работать, но не работает. tostring, как нетрудно заметить, в списке отсутствует.

Shmuel
Posts: 4865
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 9 times
Been thanked: 112 times

Ликбез по Lua

Postby Shmuel » Fri 13 Jan, 2017 07:27

IgorZ wrote:Source of the post Захожу на http://www.lua.org/manual/5.1/manual.html, раздел 2.8 – Metatables, вижу такие метаметоды:
Ну допустим в этом разделе __tostring не указан, что мешает сделать поиск его на всей странице? Разве ваш браузер не имеет функции поиска в загруженной странице?
IgorZ wrote:Source of the post Как видно, len есть, из примера к нему видно, что для таблиц он должен работать, но не работает.
Из примера как раз видно, что для таблиц он не должен работать, там даже прокомментировано, что возвращается "primitive table length".


Return to “Нужна помощь”

Who is online

Users browsing this forum: No registered users and 4 guests