Mark ☢️
погодите, но я не хочу в глобальную переменную записывать
Lucky
я и говорю - наркоман
Mark ☢️
Snusmumriken
Snusmumriken
Ну ды, в курсе на тему локала, поэтому дал пример без него.
Mark ☢️
Mark ☢️
жованный крот
Lucky
first_step = google "Programming in Lua"
Mark ☢️
да умные все блин
Snusmumriken
Карочи, в консольном виде, всё "локальное" оказывается локальным только в пределах данной строки, которую мы печатаем а потом жмакаем enter.
Mark ☢️
да блин, тоесть это проблема не луа а синтаксиса конкретного repl-интерпретатора ?
Snusmumriken
В скриптах всё ок, они грузятся единым чанком вместо того чтобы подгружать каждую строчку отдельно ))
Mark ☢️
мммм. сравнимо с маразмами в го.
Snusmumriken
Что делает консольный луа-интерпретатор: на каждую входящую строчку вызывает "eval". Соответственно, скоуп у каждого eval'а свой.
Mark ☢️
тем не менее, я понял. спасибо.
Mark ☢️
Mark ☢️
блин, да я понимаю скопы, я просто не знал что интерпретатор на каждую строку делает скоуп
Tadeusz
Snusmumriken
Потому что у питона не делает?
Mark ☢️
потому что имхо это не очевидно
Snusmumriken
потому что имхо это не очевидно
Все нормальные люди загружают скрипты, а в консольке интерпретатора только балуются а ля быстрой проверки регулярок или эксплуатации как калькулятора.
Mark ☢️
на мой взгляд, построчно вставленная программа из нотепада должна работать эквивалентно тому если ее запустить прямо из файла
Mark ☢️
Mark ☢️
(как у меня)
vitaly
нормальные люди никогда не пользуются консольными интерпритатором
Lucky
в лс глянь
Snusmumriken
Но да, do-end блоки никто не отменял.
Snusmumriken
Mark ☢️
класс. админы друг другу доказывают как правильно выполнять командочки в построчном интерпретаторе
Mark ☢️
да вы ещё большие наркоманы
Mark ☢️
Mark ☢️
Mark ☢️
или собака
Mark ☢️
или ipv6
Snusmumriken
Да пофигу, у нас "идеальные" условия.
Mark ☢️
типа эскуэль иньекций
Snusmumriken
Mark ☢️
ну типа идеальные же условия
Mark ☢️
пжжи, это где это я такое сказал ?
vitaly
А если твоя работа основана на регулярках? : )
Допустим, смотри: ко мне приходит прокся в формате:
user:password@195.201.43.199:3128
И моя задача - вытащить оттуда user и password, что мне делать, скажи?
function explode(div,str) -- credit: http://richard.warburton.it
if (div=='') then return false end
local pos,arr = 0,{}
-- for each divider found
for st,sp in function() return string.find(str,div,pos,true) end do
table.insert(arr,string.sub(str,pos,st-1)) -- Attach chars left of current divider
pos = sp + 1 -- Jump past current divider
end
table.insert(arr,string.sub(str,pos)) -- Attach chars right of last divider
return arr
end
Snusmumriken
local proxy = {usr = '', pass = '', url = ''}
local current = 'usr'
for i = 1, #proxystr do
local c = proxystr:sub(i, i)
if c == ':' then
current = 'pass'
elseif c == '@' then
current = 'url'
else
proxy[current] = proxy[current] .. c
end
end
Опа! Ни одной регулярки!
Snusmumriken
Ну, или
p = {}
p.usr, p.pass, p.url = p_str:match'(.-):(.-)@(.*)'
assert(p.usr, 'Invalid proxy format')
Mark ☢️
Snusmumriken
Да нет, я товарища спрашиваю, чому регулярки не использовать : )
Mark ☢️
если собачки нет - та ещё пепяка будет
Snusmumriken
Ужс. Значит будет пустая прокся.
vitaly
меняй работу
Snusmumriken
Хуле ты не медитируешь последний миллиард лет? Ну точно пора менять образ жизни. Пока не поменяешь - не возвращайся кароч.
Snusmumriken
Совсем забыл, что большая часть общепризнано-крутых людей уже давно мертва. Жизнь для лохов.
vitaly
это телега или админы?
vitaly
блюдят кодекс?
vitaly
чистого луа в луа чате?
Snusmumriken
Нет, это ты порешь пургу, а я закидываю тебя ещё большей пургой потому что весело.
vitaly
Snusmumriken
Ну, разве это не пурга? "Меня заставили на работе писать регулярку, нафиг такую работу, пойду поменяю!".
Snusmumriken
Ещё и без оснований : )
vitaly
причем тут это - можно без регулярок жить - регулярки это как мечь ниньзя которым можно отрубить себе ногу и не заметить
Snusmumriken
Можно. Поэтому Настоящие Ниндзя - используют регулярки когда нужно, и не используют их когда не нужно, как настоящий меч ниндзя.
vitaly
вообще все началось что кто при изучении языка изучал возможность интерпритатора консольного не зная его особенностей
vitaly
это как раз случай когда ты ходишь в лесу из мечей ниньзя
vitaly
и каждую секунду может что нить случится случайно
Snusmumriken
Если ты не ниндзя - тебе всё равно надо тренироваться чтобы стать Настоящим Ниндзей, и учиться использовать регулярки когда надо. Без практики (использования меча ниндзя без опыта использования меча ниндзя) - ты никогда не станешь Настоящим Ниндзей.
vitaly
если сложно запустить любимый редактор и потом сделать screen luajit file.lua
Snusmumriken
Другое дело, что пока ты не ниндзя - тебя не пустят писать регулярки в продакшен, и сначала начинающие (и не только) ниндзя гоняют свои регулярки на тестовых стендах, в интерпретаторе, где угодно ещё, где регулярки не отрубят тебе ногу.
vitaly
в жизни реальной ставят прикладные задачи - основное правило при решении задач - существует больше чем один способ решения задачи - если можно жить без регулярок - то можно и не знать про них 100 лет
Snusmumriken
Ты сам - ниндзя регулярок?
Вот тебе пример из реальной жизни:
Допустим, у тебя есть XML-файл на миллиард гигабайт с большим-большим списком элементов, и твоя задача - перебрать все элементы и что-то с ними сделать (вогнать в базу, ещё что-нибудь такое). Ты будешь использовать регулярки?
vitaly
эксплоде функция
Snusmumriken
А как распарсить?
vitaly
построчно взрываешь и обрабатываешь массив
vitaly
построчно
Snusmumriken
А вдруг это одна строка. Файл содержит одну строку.
vitaly
взрываешь разделителем
Snusmumriken
Каким?
vitaly
это же хмл