Vyacheslav
пардон, ошибся в терминологии. В таблице
Anatoliy
пардон, ошибся в терминологии. В таблице
Таблица это как многомерный массив всего лишь, или многомерный список, короче список где каждый элемент это тоже список
Vyacheslav
ну в ней же есть метаметоды, типа __index и прочее? Можно как-нибудь их получить, чтобы понять, что было преопределено?
Vyacheslav
статью только... Lua за 15 минут
Vyacheslav
но понял про что ты... Посоветуйте книжку
Anatoliy
статью только... Lua за 15 минут
Хехе, так непойдет, за 15 минут программировать ненаучишся и язык неизучишь
Anatoliy
но понял про что ты... Посоветуйте книжку
Вот для начала прочитай ВСЮ а потом спрашивай
mva
Вот в строчке local sp = tab - (p - 1 + corr)%tab мне что то не понятен там смысл знака % и выражения (p - 1 + corr)%tab
это математическое выражение x%y - это остаток от целочисленного деления x на y
Vyacheslav
Хехе, так непойдет, за 15 минут программировать ненаучишся и язык неизучишь
да вот не скажи... Для простых вещей вполне хватало (если гуглить аналоги функций из известных языков) :)
Anatoliy
а зачем же тогда писать - за 15 минут?
А фиг их знает, ты сам то веришь что человек с нуля за 15 минут язык программирования изучит?
Anatoliy
а зачем же тогда писать - за 15 минут?
Ты еще представь себе статью типа "C++ за 15 минут"
Anatoliy
а зачем же тогда писать - за 15 минут?
Я даже и другие языки программирования знаю, хоть и не на отлично но все таки шарю более менее, и то луа изучаю уже с месяц, как полностью с нуля
vvzvlad
В луа же нет туплов?
В тарантуле есть!)
Vyacheslav
В тарантуле есть!)
вот я там и увидел...
Anonymous
Как тип данных для хранения?
vvzvlad
Так это лучше спросить в t.me/tarantoolru
vvzvlad
В чистом луа такого нет
vvzvlad
Как тип данных для хранения?
У них так "строка" таблицы называется.
Anatoliy
Спасибо :)
Только там есть странные моменты, там читать местами надо, если читаешь и что то непонятно то ищи объяснения в других местах книги - там вот с самого начала в разных местах идут примеры программ с паттернами, а что такое паттерны объясняется только уже ближе к концу
Vyacheslav
Так это лучше спросить в t.me/tarantoolru
спрашивал, молчат. Но есть у них функция, которая делает нечто похожее на то, что мне нужно, вот, думал зареверсинженерить
Anatoliy
или тебе уже не актуально? :)
Да уже разобрался почти сразу как и спросил, спасибо )))
vvzvlad
спрашивал, молчат. Но есть у них функция, которая делает нечто похожее на то, что мне нужно, вот, думал зареверсинженерить
Так а что тебе нужно? Тайпл — это просто несколько последовательных значений, возможно, разных типов. Метаметодов у них нет, пока они не превращаются в табличку в луа
Basil
Да уже разобрался почти сразу как и спросил, спасибо )))
это да, правильная формулировка вопроса ставит что-то в голове на место. у меня так часто.
Anatoliy
это да, правильная формулировка вопроса ставит что-то в голове на место. у меня так часто.
Да не там другое, как стал читать книгу ближе к концу уже стал забывать с чего начал, все же в книге есть
Vyacheslav
Так а что тебе нужно? Тайпл — это просто несколько последовательных значений, возможно, разных типов. Метаметодов у них нет, пока они не превращаются в табличку в луа
Прошу прощения за оффтоп. Есть какая-то связь со спейсом, откуда данные были вытянуты и где-то как-то это хранится.
vvzvlad
Прошу прощения за оффтоп. Есть какая-то связь со спейсом, откуда данные были вытянуты и где-то как-то это хранится.
Если уже после превращения в таблицу — то стандартными функциями луа, типа getmetatable
Lucky
а зачем же тогда писать - за 15 минут?
для разбора скриптов в игорьках типа вовки и сталкера хватает.
Anonymous
Конечно, такие вещи как луа должны учиться легко за 3 дня по статейкам
Anonymous
А не корпеть над книгой с упражнениями
Anonymous
Это же не оракл
Anonymous
Чем читать программинг ин луа проще интерпретатор разобрать
Anonymous
Или луаджит что там меньше
vitaly
привет
vitaly
задача получать таймстамп одинаковый в течении одной минуты
vitaly
ngx.now() возвращает текущий таймстамп
vitaly
нам нужна переменная для кеширования которая будет меняться раз в минуту
vitaly
вычесть остаток деления на 60
vitaly
и прибавить 60
vitaly
катит?
vitaly
local now = ngx.now() local tcache = now - ( now % 60 ) local args = "room="..room_id.."&f="..tcache
Anonymous
Прівет
Anatoliy
Конечно, такие вещи как луа должны учиться легко за 3 дня по статейкам
Это смотря у кого какие задачи, если простенький вспомогательный скрипт для игрушки написать то да, но для таких задач любой язык хоть оракл и Ява за три дня разобрать хватит, а если написать бота с искусственным интеллектом выполняющего разные сложные задачи то тут три дня статейки почитать таких знаний нехватит
Anatoliy
Прочитать и понять 400 с небольшим страниц книжного текста технической литературы и освоить весь этот материал за неделю нереально для большинства людей
Anatoliy
Если только бегло прочитать то так можно и за пару дней всю книгу в 400 стр прочитать, но техническая литература это не художественная, её так читать нельзя толку не будет, я например луа изучаю на годы вперёд, нет смысла спешить два три месяца ничего не изменят
Artem
все зависит от целей и желаний, еще от возраста, сейчас уже врятли получится так повторить
Господин
одно чтение бесполезно.
Snusmumriken
ну в ней же есть метаметоды, типа __index и прочее? Можно как-нибудь их получить, чтобы понять, что было преопределено?
1. Таплы в луа есть. Это скрытый тип, но он вполне себе существует, например при множественном присваивании, мы на самом деле стыкуем таплы: function foo(a, b, ...) local c, d, e = ... return c, d, e, ... end print(foo(1, 2, 3, 4, 5, 6, 7)) --> 3, 4, 5, 3, 4, 5, 6, 7 Или a, b = b, a - на самом деле стыковка двух таплов. И для работы с этими таплами есть специальная функция select (выбор элементов тапла или подсчёт их количества). Но мы не об этом. 2. Таблица - это сочетание массива и хеша в произвольной пропорции, хоть одновременно. И там есть куча метаметодов, чтобы таблица могла вести себя как объект, или как ещё что-нибудь хитрое. Я некоторое время назад писал хабро-статью ровно по метаметодам. https://habr.com/post/346892/ 3. На тему тарантула - не в курсе, они могли вводить свои произвольные типы данных. Благо можно хоть из сишки выгрузить в луа кучу новых классов-объектов с произвольными методами, как раз за счёт метатаблиц.
Artem
А фиг их знает, ты сам то веришь что человек с нуля за 15 минут язык программирования изучит?
мне хватило одного часа, чтобы начать свободно писать на lua и в процессе уже узнать о каких-то еще особенностях, которые облегчают разработку
Snusmumriken
Ну, ООП (метатаблицы) у луа специфические, их с наскока не освоишь.
Dika
1. Таплы в луа есть. Это скрытый тип, но он вполне себе существует, например при множественном присваивании, мы на самом деле стыкуем таплы: function foo(a, b, ...) local c, d, e = ... return c, d, e, ... end print(foo(1, 2, 3, 4, 5, 6, 7)) --> 3, 4, 5, 3, 4, 5, 6, 7 Или a, b = b, a - на самом деле стыковка двух таплов. И для работы с этими таплами есть специальная функция select (выбор элементов тапла или подсчёт их количества). Но мы не об этом. 2. Таблица - это сочетание массива и хеша в произвольной пропорции, хоть одновременно. И там есть куча метаметодов, чтобы таблица могла вести себя как объект, или как ещё что-нибудь хитрое. Я некоторое время назад писал хабро-статью ровно по метаметодам. https://habr.com/post/346892/ 3. На тему тарантула - не в курсе, они могли вводить свои произвольные типы данных. Благо можно хоть из сишки выгрузить в луа кучу новых классов-объектов с произвольными методами, как раз за счёт метатаблиц.
это вряд ли можно назвать таплами
Dika
они ведь не first-class citizen
Anonymous
Зато можно назвать тьюплами
Artem
свободно, потому что у меня до lua еще около 15 языков программирования за 20 лет было изучено
Snusmumriken
Это таки таплы, но являются ли они НЕ first class?: function foo(...) return bar(...) end В функции их передавать можно : )
Vyacheslav
И распаковать table.unpack
Snusmumriken
свободно, потому что у меня до lua еще около 15 языков программирования за 20 лет было изучено
Если другие 15 языков были так же изучены за час, то нет : ) Если по-нормальному - то может быть. И, в таком случае, изучение языка начинается не с синтаксиса а с gotcha's.
Snusmumriken
Открою страшную тайну. Я года три писал на луа, а потом начал "свободно писать на С++ за час".
Snusmumriken
Нет, конечно, кучи тонкостей я тебе не выдам. Но классов нафигачу, методов в них кучу публичных и т.п. И будет работать! Даже битовую ерунду и указательную арифметику тоже "за час" научился обрабатывать.
Artem
Открою страшную тайну. Я года три писал на луа, а потом начал "свободно писать на С++ за час".
уровень сложности языков сильно различен, в обратном порядке я поверю, а в свободно писать, если только страшно бажные приложения падающие при каждом чихе
Snusmumriken
Очередная дурацкая тонкость : ) Ещё на шаблоны всё повесь. Метапрограммирование бла-бла. Вычисление фигни на этапе компиляций. Не а, я не в курсе что такое шаблоны, но свободно тебе что-нибудь напишу!
Anatoliy
мне хватило одного часа, чтобы начать свободно писать на lua и в процессе уже узнать о каких-то еще особенностях, которые облегчают разработку
Ну и я могу хоть сейчас начать писать, а смысл? Куда спешить? Так то конструкции почти во всех языках одинаковы - операторы сравнения присваивания циклы условия что непонятно легко нагуглить, а смысл? Мне завтра больших денег никто не заплатит за это
Snusmumriken
Карочи, за час, даже с миллиардом изученных языков за спиной, на луа можно научиться свободно писать примерно так же, как я свободно пишу на С++.
Snusmumriken
И так же - с абсолютно любым языком. Будут написаны бажные приложения, которые падают от любого чиха.
Artem
эх, я просто пытался сказать, что можно хоть тонну литературы прочитать, без практики это бесполезно