ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Use your brain, please.
Я тоже написал мозгом с помощью math.pi но хочу выставить выигрыши в игре в таблице
Snusmumriken
You can make thus with math.pi.
local angle = os.clock() / (math.pi * 2)
But it can't be stopped.
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Hello, World! 🎄
Hello, World! 🎄
То что ты сейчас видешь, не считается.
Это просто часть входящей информации.
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Privet dobryy vecher
Alxius
Witaj, Dobry wieczór =)
Денис
Господа, а что в Lua такое с квадратными скобками? Тут курил доку (в коем-то веке, ага), пока писал придумывалку строки из рандомных символов по всяким извратам типапаттернов и так далее, и вижу следующее:
Литеральные строки также могут быть определены используя длинные скобки. Мы определяем открывающую длинную скобку уровня n, как открывающую квадратную скобку, следующие за ней n знаков = и ещё одну открывающую квадратную скобку. Так, открывающая длинная скобка уровня 0 запишется так: [[, для уровня 1 - [=[, и так далее. Закрывающая длинная скобка определяется аналогично; например, закрывающая длинная скобка уровня 4 запишется так: ]====]. Длинный литерал начинается с открывающей длинной скобки любого уровня и завершается на первой закрывающей длинной скобке того же уровня. Это позволяет содержать любой текст, кроме закрывающей скобки того же уровня. Литералы в такой скобочной форме могут занимать несколько линий (строк), управляющие последовательности в таких строках не работают, длинные скобки других уровней игнорируются.
Я все эти два года просто считал, что двойные квадратные скобки обозначают блок продолжительной строки, а тут про какие-то уровни?.. Как это использовать?
Igor
Господа, а что в Lua такое с квадратными скобками? Тут курил доку (в коем-то веке, ага), пока писал придумывалку строки из рандомных символов по всяким извратам типапаттернов и так далее, и вижу следующее:
Литеральные строки также могут быть определены используя длинные скобки. Мы определяем открывающую длинную скобку уровня n, как открывающую квадратную скобку, следующие за ней n знаков = и ещё одну открывающую квадратную скобку. Так, открывающая длинная скобка уровня 0 запишется так: [[, для уровня 1 - [=[, и так далее. Закрывающая длинная скобка определяется аналогично; например, закрывающая длинная скобка уровня 4 запишется так: ]====]. Длинный литерал начинается с открывающей длинной скобки любого уровня и завершается на первой закрывающей длинной скобке того же уровня. Это позволяет содержать любой текст, кроме закрывающей скобки того же уровня. Литералы в такой скобочной форме могут занимать несколько линий (строк), управляющие последовательности в таких строках не работают, длинные скобки других уровней игнорируются.
Я все эти два года просто считал, что двойные квадратные скобки обозначают блок продолжительной строки, а тут про какие-то уровни?.. Как это использовать?
Если тебе внутри литерала нужен ещё один литерал. В этом случае уровни как раз и спасают.
Денис
Igor
Ну допустим, записал я такой литерал... А дальше куда его? Как его парсить-то?..
А их парсить и не надо, ты назначения этой фиговины походу не понял. Представь себе ситуацию: Пишешь ты такой внутри своего скрипта ещё один скрипт, который на данный момент является чанком-строкой, но вот тебе внутри этого чанка понадобился литерал, но если ты попытаешься его закрыть, то закроется твой основной литерал. Это всё поломает к хренам. Так же в некоторых языках (н-р, xml) используются двойные квадратные скобки, в той же CDATA, это тоже может навредить твоему литералу.
Денис
А их парсить и не надо, ты назначения этой фиговины походу не понял. Представь себе ситуацию: Пишешь ты такой внутри своего скрипта ещё один скрипт, который на данный момент является чанком-строкой, но вот тебе внутри этого чанка понадобился литерал, но если ты попытаешься его закрыть, то закроется твой основной литерал. Это всё поломает к хренам. Так же в некоторых языках (н-р, xml) используются двойные квадратные скобки, в той же CDATA, это тоже может навредить твоему литералу.
Хорошо, с чанками я понял, каюсь, был неправ 😊
Тогда до меня не доходит оформление таких уровней... Можешь накидать прямо одной переменной вид такой конструкции?
Давай представим, что у нас есть переменная subscript, которая будет содержать чанк с переменной manifest, которая в свою очередь будет содержать литеральную строку типа
[[This
is
a
test
]]
Igor
Денис
Распознавайкой достал только ошибку про что-то ожидаемое)))
Денис
Денис
По крайней мере, так работает.
Александр
Да нет никакого формата, просто через конструкции [=*[]=*]можно делать вложенные блоки,
1) причём для строк крутость в том, что можно внутри таких строк неэкранировать кавычки и писать
lua
print([[Это вот "Привет" мир]]) --> Это вот "Привет" мир
2) Но дополнительное достоинство идёт не для строк, а для комментариев, ибо --[[]] - это многострочный комментарий, но вот проблема, возникает, если ты хочешь закомментировать крупный блок с многострочными комментариями, что делать или строки из квадратных скобок ? На помощь приходят символы =, с помощью которых можно блоки из квадратных скобок разделить и тогда можно написать
--[==[
...
--[=[
print([[Это вот "Привет" мир]])
]=]
...
]==]
Александр
Более того такие комментарии можно писать чуть хитрее
--[[
--]]
т.е. дополнительно добавляя --, которые по сути с одной стороны будут внутри большого комментария, а с другой, для того чтобы по сути раскомментировать/закомментировать блок, нужно добавить лишь один доп - к началу комментария ---[[ как итог обе строки будут считаться однострочными комментариями, но убрав минус вновь комментарием будет цельный многострочный блок
Snusmumriken
Распознавайкой достал только ошибку про что-то ожидаемое)))
Кароч, смотри. Есть квадратные скобки для многострочных строк записанных "как есть". Но тебе вдруг надо в теле самой строки использовать пары квадратных скобок.
И для возможности их определения, ты пихаешь между крайними квадратными скобками столько символов "=" сколько нет во внутренней ерунде. Количество символов "=" между скобками может быть любым, хоть миллиард, главное чтобы их было одинаковое количество в открывающей скобке и в закрывающей.
line = [=[blabla]]blabla]=]
То же самое работает в многострочных комментариях.
Денис
Snusmumriken
Ну примерно так, да.
WDMR
Евтихия Бекулов звучит как опытный программист
Roman
ну что за предрассудки по отношению к ботам
WDMR
к нам пожаловал бохх космоса
Семён
Коллеги, подскажите, а можно ли как-то по указателю получить имя функции не имея модуля debug?
Snusmumriken
Семён
Snusmumriken
Это как? Кто-то отрубал принудительно?
А require'debug' не работает?
Snusmumriken
Вообще, довольно простой способ узнать имя функции это дёрнуть error и посмотреть на трейс. Но ты узнаешь имя функции только при ошибке.
Александр
Александр
плюс есть альтернативные библиотеки отладки
Семён
У меня и так 20 кб остаётся оперативы при максимально кастрированном варианте...
Александр
Это не смотрели https://github.com/elua/elua ?
Александр
И кстати вот https://habr.com/ru/post/459602/
Snusmumriken
Лично я вижу только один разумный случай использования луа — когда логики настолько много, что весь код в сишном варианте не влезает в память, поэтому мы такие берём, ставим луа, подгружаем модули с внешней памяти по необходимости, и выгружаем их когда те больше не нужны.
Буквально как с постраничной подстановкой памяти, только с луашным кодом.
Скорость работы при этом очень сильно оставляет желать лучшего, но можно запихнуть больше логики чем сишкой. И не единовременно.
Anonymous
Александр
не, он а) сишный, б) поддерживает ограниченное количество режимов и архитектур
R
Пробовал Nelua для похожих задач (не stm, но рядом). Сырой он, я бы не рискнул тащить в реальные проекты. Возможно, уже допилили.
Anonymous
кто то вкурсе love2d тяжело собрать с Lua5.4?
Null
Оно вроде как вообще не под луа, а под луажит...
Null
На котором последняя поддерживаемая версия луев кажись 5.1... может ошибаюсь
Null
Интересно, почему питон настолько популярнее луа, почему под луа настолько меньше библиотек, чем под питон...
Семён
Семён
Семён
Семён
R
Денис
Интересно, почему питон настолько популярнее луа, почему под луа настолько меньше библиотек, чем под питон...
Таким же вопросом задаюсь до сих пор. Мое личное мнение, что Lua гораздо лучше питона, хотя бы из-за размеров среды. Да, в Lua тоже можно напихать будь здоров, но все же. Мой Сандбокс для какой-нибудь утилитки весит два-три мегабайта с учетом двух архитектур, а твиттер-клиент на питоне - 379 мегабайт... ТРИСТА СЕМЬДЕСЯТ ДЕВЯТЬ! Я бы понял, если твиттер-клиент весил 50 мегабайт, но 379... И работает все это медленно, кто бы что мне ни говорил. Да питон сейчас хайпует, причем, жесточайше, в виду этого, там либов на каждый чих. У нас же, зачастую, про стэндалон даже не говорят, скриптульки под свои задачи, и если чего нет, пиши сам, либо ищи на гитхабе и пытайся собрать (WXLua я до сих пор не смог). А вот чем Lua хуже для стэндалона?
Денис
Питон - ужасный язык, но у него невпихаться какое комьюнити. Луа крутая, но комьюнити - отсутствует. Согласитесь, наш ТГ-чатик и парочка десятков статей на хабре - это не комьюнити.
Денис
Ах да, еще хочу уточнить, что перечисление комьюнити в прошлом сообщении было не буквальным, а для понимания. Разумеется, комьюнити Lua нашим чатиком, да хабром далеко не ограничивается.
usernameak
Таким же вопросом задаюсь до сих пор. Мое личное мнение, что Lua гораздо лучше питона, хотя бы из-за размеров среды. Да, в Lua тоже можно напихать будь здоров, но все же. Мой Сандбокс для какой-нибудь утилитки весит два-три мегабайта с учетом двух архитектур, а твиттер-клиент на питоне - 379 мегабайт... ТРИСТА СЕМЬДЕСЯТ ДЕВЯТЬ! Я бы понял, если твиттер-клиент весил 50 мегабайт, но 379... И работает все это медленно, кто бы что мне ни говорил. Да питон сейчас хайпует, причем, жесточайше, в виду этого, там либов на каждый чих. У нас же, зачастую, про стэндалон даже не говорят, скриптульки под свои задачи, и если чего нет, пиши сам, либо ищи на гитхабе и пытайся собрать (WXLua я до сих пор не смог). А вот чем Lua хуже для стэндалона?
что забавно, хайп увеличивает количество либ, а количество либ увеличивает хайп. это самоподдерживающаяся система
Денис
usernameak
Денис
Мне упорно доказывали, что, мол, зачем писать на том же самом пурике, если можно написать на питоне
Денис
Мои увещевания типа виртуалить все, что движется - не есть самое хорошее, что нужно делать - уперлись в искреннее непонимание, мол, а что тут плохого, если можно?
Денис
Так что из двух зол, я выбираю Lua! Ну, подумаешь, свои либы буду писать! Уже довольно быстро получается!
Денис
Спасибо, кстати, @igor2608 за мою скорость в написании!
Денис
Anton
Может, не стОит? Их тошнит обычно от этого