Anonymous
da vce v quake igrali translit eto ne cheto takoe sverhestestvennoe
Snusmumriken
оПХБЕР! йЮЙ ОЕПЕЙКЧВЮРЭ ЙНДХПНБЙС?
Anonymous
ya bi vkluchil no s moey aktivnost'y v chate a eto neizvestno kogda ya eshe suda pisat' budu smisl derjat' dva layouta chtobi potom mejdu nimi perekluchatsa postoyanno takoe sebe
Anonymous
ya obichno read only :D
Snusmumriken
Ну ладно, ладно, мистер Подвальный Житель : )
_AMD_
Вопрос. Вот есть у меня, например, такая функция. Я возвращаю в ней ID. Если ли разница, буду ли я его принимать или нет?
_AMD_
попробую понятнее сразу написать
_AMD_
чем чревато возвращение значений "в пустоту"? Насколько плохо это делать или можно не задумываться даже?
fgntfg
Ничем не плохо
_AMD_
окей. Спасибо
fgntfg
По секрету - многие фунции что-то да возвращают.
fgntfg
Обычно коды завершения
Tverd
а еще можно возвращать сам SCR и можно делать цепочки фукнций...
fgntfg
как в jQuery
Elias
@amd_nick, что за шрифт? :D
_AMD_
input mono
Elias
Спасибо
Красивый :D
_AMD_
😉
Anonymous
В луа фибры есть? Курутины т.е.
Tverd
есть корутины
Tverd
и как я понял они там появились задолго до питона и js
Elias
И они в Lua в разы эпичнее питона (про js не знаю)
По крайней мере в Lua можно делать yield из любого scope внутри корутины :D
Anonymous
Отлично, спасибо
Elias
Ещё есть LuaLanes, это более адовая штука и имеет ряд ограничений и проблем. Но вроде она позволяет делать настоящую многопоточность
Kukuzapa
Эта LuaLanes под 5.1 работает?
Elias
Да
Kukuzapa
Да? Я не смог запустить. Выдавало ошибку c-call.
Anonymous
В винде, по моему есть апи для фибр. Во всяком случае дайнамик скул выполняется в скул сервере каждый в отдельноц фибре. Но , возможно, у скул сервера просто свой шедулер и реализация курутин тоже своя
Anonymous
Я к тому что может быть луа-леинс использует виндовый апи
Tverd
Было дело
B
вопрос по стилю, и простоте понимания :
разве не проще вместо
~= false
писать
==true
Ivan
Snusmumriken
Проще писать not N.
Ну там:
obj, err = foo(1, 2, 3)
if not obj then
log('Error! bla-bla '..tostring(err))
return nil, err
end
obj:bar(3, 2, 1)
Snusmumriken
Кстати что-то я слишком часто пишу данную конструкцию, надо её как-то абстрагировать в краткую форму.
Большое количество сравнительно линейного кода с отсеиванием ошибок через решето.
Без хендлинга ошибок, потому что тогда логи кривыми получаются, и медленно откровенно.
Yuriy
not obj не совсем универсальная
Snusmumriken
Там может быть false/nil, но obj в луа подразумевает таблицу.
Дальше-то мы с ней работаем как с таблицей.
Yuriy
она не очень подходит для других строк которые могут быть true при их пустоте
Yuriy
касаемо объектов - согласен
Snusmumriken
Касаемо почти всего. В очень редких случаях нужно проверять тип, если что-то в одних условиях возвращает false, а в других - ничего.
Yuriy
вот в этих аспектах lua не очень однозначен (в плюс JS)
Snusmumriken
Ну там:
local page, status, headers = http.request('http://google.com')
if not page then
...
end
Snusmumriken
Всё то же самое.
Snusmumriken
В js всё ещё хуже, потому что 0 == false.
А null != false != true.
Ivan
Yuriy
Ну оп ркайней мере пустую строку не надо проверять на тип.
Она если пустая то она вполне себе false
А в lua - пустая но true
Хотя это скорее дело вкуса. Прсото надо знать
Snusmumriken
Ну, для меня это очень удобно, пустые строки - это всё равно строки и их можно конкатенировать/работать с ними как со строками ))
А если тебе нужно проверить что это строка и её длина выше чем -
if str and #str > 0 then
...
end
Или от противного:
if not str or #str == 0 then
...
end
Ну как бы чуть-чуть длиннее, но незначительно и при прочтении - точно понятно что ты хочешь.
Yuriy
Да я согласен что в каких то моментах это удобно. я простоо отметил что это нужно знать при использовании not в if
Yuriy
Хотя бы потому что в других языках это несколько иначе
Yuriy
просто на моей памяти как правило те кто пишет на луа обычно и на js пишут и не я один на эти грабли наступал, так как банально забываешь. (переключаешься с языка на язык)
Snusmumriken
Да, это нужно знать : )
Но смотри: в js, нужно знать что:
null, false, "", NaN, undefined и ещё куча всего - это false,
а в луа достаточно двух: nil и false.
Yuriy
Я не сравниваю js и lua в плане понимания - что лучше а что хуже)
Yuriy
Как минимум пока что они решают разные задачи)
Yuriy
раздражают лично меня одинково оба)
Snusmumriken
Я к тому что переходить с луа на что-то другое - это просто, чутка расширяешь набор конструкций.
А переходить с js на луа - может быть чуть сложнее, потому что старые конструкции не работают (((
Snusmumriken
Но зато все принудительно читабельнее.
Yuriy
Не. Ну в этом плане согласен полностью
Yuriy
По крайней мере с lua на js и с js на lua переходить очень просто так как больше общего чем различий
Yuriy
да и вообще парадигма очень похожа в работе с объектами (табличцами)
Yuriy
практически все приемы переносятся
Yuriy
в той или иной степени
Snusmumriken
Я прост начал с луёв, и мне очень просто переходить на все что угодно с-подобное, будь то шарп или питон или плюсы.
Snusmumriken
Но в статической типизации слегка выбешивает необходимость извращаться там, где этого могло бы не быть, будь яп динамическим.
Snusmumriken
А в динамической чутка выбешивает необходимость кучи проверкок )))
Yuriy
На данный момент я рад что не приходится сталкиватья в статику.
Нуу по крайней мере при тех адачах что сейчас решаютс - это было бы из пушки по воробъям
Yuriy
А с проверками в динамике все довольно просто
Yuriy
я написал себе валидатор на эти случаю
Snusmumriken
Ну допустим я захотел в плюсах списка всякой разнородной фигни, и приходится делать сразу корневой класс и кучу подклассов под каждую фигню. Невозможно итерировать по ключам-значениям структуры и перегнать их в другую структуру, например. Хотя мб я просто мало библиотек подключил : )
Ivan
Yuriy
@CyberSpirit lua это почти js )))
Snusmumriken
За редким исключением, иногда - функциям можно возвращать и то и то, но это должно быть очевидно.
Ivan
Aleksey
Ребята, новичок в Lua. Если не туда с таким вопросом, пожалуйста, отправьте в нужный канал.
Код такой:
----
print(type(someVariable))
if type(someVariable) == nil then
print("Ok")
end
-----
В someVariable я ожидаю nil и собственно на экран и выводится: nil. Но в условие почему-то не входит. В чем дело? Запускаю под Corona SDK, если это важно.
Aleksey
Спасибо! Сейчас попробую тогда сравнить со строкой
Elias
После C++ я прям TRIGGERED, когда приходится использовать строки для таких вещей.
Но потом я вспоминаю, что они не так копируются миллиард раз, и я успокаиваюсь. :D
Aleksey
А еще такой вопрос. Можно ли отлаживать программу для короны в редакторе Atom?
Aleksey
ну сейчас я именно так и отлаживаю =D
Elias
Отлаживать можно в ZeroBrane