Ivan
Даже если бы возвращал, это плохо, так как он в релизе вырезается
Snusmumriken
Точнее, assert возвращает всё что в него передали, но если первый аргумент ложный - дёргает ошибку со вторым аргументом в качестве текста.
Snusmumriken
И нет, assert - не плохо в релизе.
Ivan
Это у вас в луа
Ivan
Его в си вообще нет, это макрос, который только в дебаге
Snusmumriken
С assert сразу видно где чё упало. Если очень надо обрабатывать ошибки - обрабатываешь их отдельно.
mihacooper [МСК -2]
assert в Lua ~= assert в C
Sergey
так это
Sergey
luvit юзает кто?
mihacooper [МСК -2]
ноуп
Sergey
он херовый?
Sergey
или что?
fgntfg
/me рассказывает коллгам про lua
fgntfg
Снус, не хулигань
Snusmumriken
/me нравится хулиганить
ShadoWalkeR
try-catch лучше ассерта)
Ivan
Snusmumriken
try-catch лучше один, покрывающий горы ассертов ))
Ivan
это разные вещи
FailsBot
fgntfg рассказывает коллгам про lua
fgntfg
ммм, ботик не хулигань
Ivan
try catch для обработки исключительных ситуаций
FailsBot
Snusmumriken нравится хулиганить
Vasiliy
/me
FailsBot
Vasiliy
Snusmumriken
Вот это - да, похоже.
fgntfg
Интересно, если я посавлю в качестве имени /me ...
ShadoWalkeR
Я знаю. Просто в моем случае у меня падения будут от обращения к внешним данным - БД, чтото по сети и тд. Там лучше чтобы не падало а продолжало работу с каким то потолочно-дефолтным значением
ShadoWalkeR
Поэтому проще работу с бд обернуть в блок try-catch
Snusmumriken
Ну тогда вот такое:
function doSomething(a, b)
a = a or 10
if not b then return nil, 'No B!' end
c = b(a) or 25
e = foo(c)
if not e then return nil, 'Super Error!' end
return e
end
Получается не очень гладко, но все ошибки обрабатываются.
fgntfg
a>10 or 10 and a
ShadoWalkeR
Мне в squirrel lang понравилась следующая идея:
try {
ksr_route_dlguri <- loadfile(ROUTES + "DLGURI.nut", true);
ksr_route_invite <- loadfile(ROUTES + "INVITE.nut", true);
} catch(e) {
print("Catched exception:" + e);
}
ShadoWalkeR
А там в лог выплюнется все что пошло не так при загрузке файла - ошибки в нем, невозможность прочитать и тд
fgntfg
лог весь на совести состовителя либы, tbh
ShadoWalkeR
Ну там лог приложения в systemd. просто увижу стек с вызовами где возникала ошибка
fgntfg
Ох сотона.
fgntfg
Меня от явовских трейсбаков передёргивает
ShadoWalkeR
Все там читабельно)
kazgeek
Здравствуйте. Подскажите, пожалуйста, как из "этой" строки извлечь с "помощью" string.match слово из вторых кавычек. В кавычках слова меняются.
kazgeek
a = 'Здравствуйте. Подскажите, пожалуйста, как из "этой" строки извлечь с "помощью" string.match слово из вторых кавычек.'
print(string.match(a, 'как из "([^"]*)')
так достаем слово из первых кавычек, а как из вторых?
fgntfg
'"([^"])*^"([^"])'
fgntfg
вообще есть много классных онлайн редакторов регекспов
fgntfg
я рекомендую юзать их
kazgeek
fgntfg
fgntfg
https://regex101.com/
fgntfg
А надо только второе?
fgntfg
или что?
kazgeek
да
Snusmumriken
Хех, а почему, кстати, именно из вторых кавычек? Ну, просто имхо как-то "одноразово", если захочешь дёргуть третьи кавычки - придётся всё переписывать.
И да, можно короче:
1. "Последние" кавычки: '.*"(.-)"'
2. Вторые кавычки: '".-".-"(.-)"'
Snusmumriken
fgntfg
.*"[^"]*".*"([^"]*)"
fgntfg
регекспы сильный инструмент
Snusmumriken
Ты переусложняешь ))
fgntfg
но без бутылки иногда не
fgntfg
Хотя, я бы просто посплитил по ковычке
Snusmumriken
Пропустив нечётные "слова", да
fgntfg
или дёрнул все ковычки и потом обратился ко второму элементу таблицы
Snusmumriken
Во-во
Snusmumriken
for word in str:gmatch('"(.-)"') do
...
end
kazgeek
Спасибо большое! Всё сработало.
Snusmumriken
Ну ищоб
Alexander
Конференция Lua in Moscow 2018 --- уже завтра! Регистрируйтесь и приходите! Регистрироваться на таймпаде обязательно. https://iponweb.timepad.ru/event/676207/
Elias
https://twitter.com/Mr_Auk/status/977194540816830465
"Marvel: Infinity War is the most ambitious crossover event in history.
me:
local ffi = require “ffi”
ffi.cdef[[ int printf(const char *fmt, ...); ]]
ffi.C.printf(“Hello %s!”, “world”)
"
😆
Alexander
Прямая трансляция на http://lua.moscow
B
только включил трансляцию и сразу вопрос, а что есть lua5.4?
mihacooper [МСК -2]
Есть его анонс для сообщества, типа dev релиз
Jorge
Всем спасибо. Могу подвести до Павелецкой.
Тибетский лис ⋆ ⚝️
300
Snusmumriken
vvzvlad
А как мне надо сформировать таблицу в lua, чтобы получить такой json из нее: '{"resources": [{"resourcePath":"#"}]}'? Если делаю таблицу вот так(json.encode({resources = {resourcePath = subscription_topic}})), то получаю фигню: '{"resources":{"resourcePath":"#"}}'
Snusmumriken
{
resources = { -- список таблиц
{ resourcePath = "#1" },
{ resourcePath = "#2" },
},
}
И да, форматируй, а то как засранец.
Snusmumriken
Mikhail
Кротаны, кто-нибужь использует #webSocket на Lua?
куда рыть, чтобы путь короче был.
Snusmumriken
Не копал, только обычные сокеты. Там вроде разница с http только в нескольких заголовках, нет?
vvzvlad
да, точно, скобка помогла
vvzvlad
в следующий раз отформатирую, сорри
Mikhail
2Snus: Нет... разница не только в заголовках. Ок, покопаю сам.