mva
а тут ещё метки впилили
mva
фу
mva
(кстати, к стыду признаться, не штудировал документацию на этот счёт, но, всё же, скажу) к тому же, неясно (лично мне, по крайней мере) как интерпретатору сказать что "вот тут метка заканчивается и дальше идёт глобальный, а не меточный код
Snusmumriken
а тут ещё метки впилили
Да ладно, метки можно использовать только на текущем уровне видимости. Там есть набор ограничений чтобы ими не злоупотребляли, в общем.
Snusmumriken
^
Ну это я и уточнил.
Snusmumriken
Есть более конкретные варианты, и тебя как раз сожрут велоцирапторы, не используй goto.
Snusmumriken
А у меня они дрессированные, поэтому ацтань ))
Snusmumriken
Ты стал бы испытывать проблемы при поддержке кода с continue?
Snusmumriken
Ну вот и помолчи. Или у тебя краснотряпочная реакция на само слово? )) Если так, то советую обратиться к психотерапевту, у них уже выработана методика лечения закоренелых линуксоидов которые "венда это омерзительно! Её постоянно надо переставлять, а пользователи - закоренелое быдло, которое даже не хочет иметь полного контроля над ОС!", макоюзеров - "фуу ну как можно пользоваться андроидом/вендой, это же омерзительно! А пользуясь маком я чувствую себя особенным!", и тех у кого распухают глаза при взгляде на определённые слова: "ихнее", "пошлите", "goto" и т.д.
Mikhail
при миграции на 5.1
Anonymous
Ro Online?
Dawn of War
Mikhail
Dawn of War
спасибо
mva
https://github.com/lua/lua/commit/bc3e02a1b7d65c908409549160f567fad14cd238
mva
посмотрите на эту редиску
mva
секьюрити, КАРЛ
Snusmumriken
Надо бы Фила посадить за код, в котором нет else (только if ... then goto ... end), нет циклов, нет объектов, нет функций. Только goto. Правда, есть шанс что Фил просвятится, и начнёт писать на асме.
mva
кстати
mva
а "./?" же разворачивается в cwd?
mva
или в dirname($0)?
mva
(да, лень тестировать)
Snusmumriken
(да, лень тестировать)
Если пробовать открыть файлы типа io.open('./file.txt', 'wb') - они будут создаваться в директории пользователя (/usr под линём, %userprofile% - под вендой).
mva
ты уверен про /usr?
mva
может таки /home/$user?
Snusmumriken
Ну да
mva
ну ответ на это просто
mva
ты запускаешь интерпретатор находясь в этой директории
mva
если ты его запустишь находясь в /tmp, то файл откроется в /tmp
mva
это логично
Snusmumriken
Нене, под вендой оно будет открывать только и исключительно в userprofile. В линексах я не проверял, но должно быть схоже. Сама по себе луа ничего не знает о путях.
mva
$ lua /tmp/a.lua This is b.lua from CWD
mva
хех
mva
с таким-то подходом оно и вправду было СЕКЬЮРИТИ
mva
но тогда лучше было бы переделать интерпретацию на определение директории, где лежит запускаемый интерпретатором скрипт, и считать пути относительно него
mva
как это, собтвенно, и сделано у белых людей
Anonymous
Можно как-то упростить??
Snusmumriken
1. local sm = save_money_for if not self.can_spend_money and (sm < 2 or sm > 4) then ... end 2. local sm_not_ok = {[2] = true, [3] = true, [4] = true} local sm = save_money_for or 0 if not self.can_spend_money and not sm_not_ok[sm] then ... end
Snusmumriken
Второй вариант даёт более лёгкую конфигурацию.
Anonymous
ничем не проще моего способа
Anonymous
кстати, если есть переменная например self.kek = 5 и условие if (self.kek) оно сработает? То есть если проверить инт на трушность то если не 0 то он будет тру, а если 0 то фолс как во всех языках или в луа по-другому(может быть?)
Snusmumriken
Только nil и false возвращают false.
Snusmumriken
if var then ... - как бы проверка на существование. Число [0] существует - значит оно тру.
Snusmumriken
И ящитаю, что это восхитительное поведение, потому что позволяет нормально писать дефолты с числами: function foo(a, b) a = a or 10 b = b or 20 return a + b end foo(0) --> 20, а не 30 Никаких лишних подводных камней.
Snusmumriken
Ну вот шо это такоэ? (в последнем случае - "0")
mva
Можно как-то упростить??
даю подсказку: math.max/math.min
Tadeusz
это ж не 0 || 30
Tadeusz
ты не видел "1" + 1 ?
Ilya
Можно как-то упростить??
Все офигенно и читаемо, не надо ничего упрощать и делать нечитабельным.
Ilya
"sm" всякие - это изврат
Ilya
Можно скобки убрать 😊
Snusmumriken
ты не видел "1" + 1 ?
Я как раз не удивлён. Но это "я такой умный", и то, если буду активнее писать на JS - буду допускать такое по невнимательности.
Tadeusz
оно не прощает такое)
Snusmumriken
"sm" всякие - это изврат
Сокращения при активном использовании чего-то - это нормально. Вот это вот: function foo(obj) local var = obj.very_long_variable_name local a = obj.hash[var] if var < a then ... end if var > a then ... end end Это гораздо лучше чем: function foo(obj) local a = obj.hash[obj.very_long_variable_name] if obj.very_long_variable_name < a then ... end if obj.very_long_variable_name > a then ... end end
Tadeusz
Snusmumriken
Вот как раз снус даже замутил в венде "пайпы" через луа и redis, как раз чтобы в openresty на лету компилировать <coffee>-код в JS.
Snusmumriken
Типо, local w = io.popen("pipe -n coffee_pipe_input", 'wb') w:write("coffee_code"); w:close() local r = io.popen("pipe -n coffee_pipe_output") print(r:read()); r:close()
Snusmumriken
Ну типо не рекомендуется писать строки >80 символов (или даже >74). В консолях/телетайпах хреново читается. Если пользуешься консольным гитом - смотреть изменения проблематичнее.
Anonymous
Вы о чём
Anonymous
Вы программисты штоле?
vitaly
Только nil и false возвращают false.
это нужно высечь в качестве слогана на валюте которая будет основана на луа
vitaly
это один из реальных подводных камней после других языков
Snusmumriken
Ты так часто использовал 0 как false в других языках?
Anonymous
Посоны срочно хелп(маленький вопрос) если в функции сделать return "hello world" а потом в другой где ее вызов проверить if(my_func) then оно будет тру?
Anonymous
или если даже написать if (my_func == true) что-то изменится?
Anonymous
ок, спс
Anonymous
hi there is a problem
Anonymous
Lua Base64 Encode
Anonymous
My problem has been resolved ، tnx
Anonymous
@LuaCodeBot 😐💋
mihacooper [МСК -2]
@LuaCodeBot 😐💋
Ohhh, man, this bot gives a root access to your server. Be careful
Anonymous
Solved
Anonymous
a=io.popen('cd && cd html && cat index.html'):read("*a") print(a)
Anonymous
How about
Anonymous
☹️👍