𝚌𝚑𝚊𝟶𝚝!𝚔
а в луа либо велосипед, либо нашел что-то похожее и допиливаешь)
𝚌𝚑𝚊𝟶𝚝!𝚔
Изкоробочности в общем не хватает)
Leon174
Вроде уже видел библиотеку такую
Есть, разумеется. https://github.com/Yonaba/Moses
Leon174
А эта под jit затачивалась. Правда, заброшена. https://github.com/luafun/luafun
Leon174
https://github.com/Yonaba/Moses/issues/70
Timur
Уже сказали, сорян
𝚌𝚑𝚊𝟶𝚝!𝚔
неплохо
𝚌𝚑𝚊𝟶𝚝!𝚔
luafun - уже веселее)
𝚌𝚑𝚊𝟶𝚝!𝚔
"early alpha stage" правда немного напрягает)
Leon174
Лучше не будет, наверное. https://github.com/luafun/luafun/issues/31
fgntfg
pcall
fgntfg
Вы, сударь, доки открывали?
fgntfg
if pcall(foo) then -- no errors while running `foo' ... else -- `foo' raised an error: take appropriate actions ... end
fgntfg
https://www.lua.org/pil/8.4.html
fgntfg
Значит нужно больше оверхеда
Во-первых, pcall принимает функцию и её аргументы. Т.е. в первом приближении, казалось бы, можно было бы сделать так: pcall(print, 3 + "aa") Во-вторых, конструкция выше всё равно рухнет, т.к. падает не функция print, а сложение 3 и "aa", вычисляемое до вызова функции, то есть, конструкция нужна уже такая: pcall(function() print(3 + "aa") end) Но я предлагаю просто не складывать число со строкой.
fgntfg
ну или обернуть всё в фунцию и дёргать
fgntfg
вариантов масса
fgntfg
можно
> print(6 2+ "word") end У тебя здесь синтаксическая ошибка — пробел посреди числа. Этот скрипт просто не должен работать, целиком.
Вообще, не советую заниматься такой ерундой, если тебе это на самом деле нужно именно для принтов. Почему не перестать складывать числа со строками?..
fgntfg
с извращениями. я бы сделал таблицу, в каждой строчке по функции, которые нужно последовательно проверять
Кажется, если там однотипная фигня, проще сделать функцию, которая будет делать опасные операции безопасно, а не пихать всё в pcall?
fgntfg
мне кажется что у тебя с архитектурой приложения проблемы, а не с try-catchом
^ this
fgntfg
Я бы элементы массива прям сделал функциями
Anonymous
🤔
fgntfg
m = function() dosomething end
fgntfg
и потом в pcall
fgntfg
for k, v in pairs do pcall(v) end
fgntfg
Проведи эксперимент
fgntfg
Это полезнее
fgntfg
А я уже спать собираюсь
fgntfg
Зубки почистил
fgntfg
Завтра рано вставать
Snusmumriken
Ты генерируешь отдельную функцию для каждого ключа t, чтобы напечатать его? )) Ну хотя бы local function f(k, v) print(data[k][v]) end for k, v in pairs(t) do -- с xpcall аргументы могут не работать pcall(f, k, v) end Или даже убрать pcall: for k, v in pairs(t) do print( data[k] and data[k][v] or "NO VALUE" ) end
Snusmumriken
Поменять местами: t = { 'name' = {'country', 'region', ...}, 'oper' = {'0', '1', '2'}, }
Hello, World! 🎄
Всем привет, скиньте кусок кода на lua, мне нужно проверить генератор подсветки, результат скину в html файле.
Hello, World! 🎄
Вот
Hello, World! 🎄
Вот
Конечно, нужно ещё потрудится над комментариями )
Hello, World! 🎄
Вот например рейкастинг, как по мне подсветка выглядит боле-менее.
Sarvar
Здравствуйте, немного затрудняюсь понять коллбеки, ну и вот этот код ниже: local fpath = os.getenv('TEMP') .. '\\moonloader-version.json' downloadUrlToFile('https://blast.hk/moonloader/data/version-info.json', fpath, downloadCallback) function downloadCallback(id, status, p1, p2) -- будет вызываться при каждом обновлении статуса загрузки файла print(id, status, p1, p2) end Пишут что будет вызываться при каждом обновлении статуса загрузки, только я не могу понять как и откуда в аргументы функции downloadCallback будут попадать значения для дальнейшей обработки.
Sarvar
Вызываю функцию downloadCallback в downloadUrlToFile, но непонятно каким образом коллбек функция будет обрабатывать данные.
Hello, World! 🎄
Ого, ос на lua. Кто-то уже постарался. https://4pda.ru/forum/index.php?showtopic=151360&
ShadoWalkeR
Ого, ос на lua. Кто-то уже постарался. https://4pda.ru/forum/index.php?showtopic=151360&
Это здорово но бессмысленно по определению. ПСП давно снята с производства, кроме того им нужно нарастить поддержку всего того что было в псп - музыка, фильмы, игры(в том числе и эмуляция ПС1)
Из недавних новостей про "что-нибудь с Lua внутри": https://www.opennet.ru/opennews/art.shtml?num=54152
Lucky
Ну, можно и оболочку.
Lucky
Но лучше игЫ!!!
Hello, World! 🎄
Hello, World! 🎄
Ну, можно и оболочку.
На python делали оболочку для linux, значит и на lua можно
Lucky
Судебного запрета нет. Религия позволяет.
ShadoWalkeR
Этот пост 2010 года. Псп на пике популярности.
А - не обратил внимание на дату 😃
Hello, World! 🎄
Мне интересно, почему android на java оболочка, а не на lua) Это же быстро было бы)
ShadoWalkeR
Мне интересно, почему android на java оболочка, а не на lua) Это же быстро было бы)
А вы попробуйте с файловой системой в луа поработать используя то что есть в нем самом и не ставя LuaFileSystem
ShadoWalkeR
fgntfg
Ребятки изобретают яп как замену оси
fgntfg
Мило
Snusmumriken
А вы попробуйте с файловой системой в луа поработать используя то что есть в нем самом и не ставя LuaFileSystem
У android ядро на сишке, со своими дровами. Жава-оболочка это только оболочка для юзерспейса. Своих особых ведро-жава-библиотек там тоже навалом, всё на биндингах.
ShadoWalkeR
У android ядро на сишке, со своими дровами. Жава-оболочка это только оболочка для юзерспейса. Своих особых ведро-жава-библиотек там тоже навалом, всё на биндингах.
Это шутка была. На самом деле мне кажется что дело в объемах и универсальности. Очень много наработок. Код пишется для VM которую нужно адаптировать под железо а не весь код и тд
ShadoWalkeR
Но да - работа с fs в луа - боль и страдания
ShadoWalkeR
Я не выдержал - решил глянуть как они под капотом сделали, а там soшка в lfs 😃
Snusmumriken
Но просто с тем же успехом, вместо жавы можно было бы взять жаваскрипт. Жаваскриптокодеров больше чем кого бы то ни было.
Snusmumriken
Только вот тут динамическая типизация и отсутствие проверок в процессе "компиляции". Кто хочет чтобы клиентские телефонные приложения падали каждые три секунды? )) Они будут! Как раз потому что жаваскриптовиков больше чем всех остальных.
Bit
http://lua-users.org/wiki/SwitchStatement Люди уже придумали много вариантов, выбирай, какой душе угодно :)
Могу порекомендовать Moonscript (язык, транслируемый в Lua), если нужен подобный сахар.
Могу порекомендовать Moonscript (язык, транслируемый в Lua), если нужен подобный сахар.
Хотя, сам в своём возрождённом проекте, наверное, откажусь от Moonscript почти полностью.
Александр
str = cmd[msg](arg)
В зависимости от того, что ты хочешь сделать. Не работает потому что что-то не так сделал, инфа 100%. В такой конструкции может быть смысл: -- local switch_var = 2 -- local argument = "asdfg" -- это где-то там объявлено или передаётся сюда, не важно, просто оно есть в этом контексте local default_function = function(a) do_stuff(a) end local switch = { [1] = function(a) do_another_stuff1(a) end, [2] = function(a) do_another_stuff2(a) end, [3] = function(a) do_another_stuff2(a) end, } local function_to_call = switch[switch_arg] or default_function function_to_call(argument) Но скорее всего в твоём случае пойдёт и цепочка if'ов.