Inellok
Я в Sublime Text.
Inellok
Notepad++ меня смутил своим интерфейсом. Вот зеробрэин - хорошая штука!
Igor
И на Lua и на C пишу в атоме, ничего удобнее не нашёл, к сожалению. А свой компилируемый говнокод в Visual Studio дебаггере гоняю, если есть проблемы.
Igor
"к сожалению" потому что я не очень люблю электрон, но атом оказался самым удобным
Inellok
Чем не нравится Sublime? Он вроде нормальный, как и Visual Code.
Igor
Раньше в саблайме сидел, но он какой-то бедненький на функционал, или я просто не научился его в полную мощщ использовать
Alxius
Раньше в саблайме сидел, но он какой-то бедненький на функционал, или я просто не научился его в полную мощщ использовать
Тоже мне кажется бедноват плюс сворачивание слабо сделано по сравнению zend studio 2008 для PHP. Но я ей не пользуюсь и.к другой язык и она кряк требует (!).
Alxius
Но главное что она нативная хотя бы .
Timur
"к сожалению" потому что я не очень люблю электрон, но атом оказался самым удобным
Атом не умеет в большие файлы, Microsoft специально заморачивались и переписали структуры данных в редакторе в Электроне чтобы более компактно хранить (и быстрее работало). Да к тому же в vscode сразу появился debugger api, а в атоме, за те 4 годя, что я следил так и не увидел
Timur
Потому вопрос - как кто vscode себе обсутраивает? Отладка, навигация?
Inellok
Почему когда я просто пишу function name() code end в таблице происходит ошибка?
Inellok
expected '('
Inellok
А вот когда пишу через присвоение полю анонимной функции, всё работает
Snusmumriken
Потому что в конструкторе таблиц нельзя писать глобальные функции, только лямбды.
Snusmumriken
Почему когда я просто пишу function name() code end в таблице происходит ошибка?
Блин, мне тут интересно. Если бы кто-то изобрёл язык, в котором можно было бы биться головой о клавиатуру, и оно всё равно было бы валидным кодом, ты бы тоже задавал вопросы "а почему нельзя"? ))
Snusmumriken
Хотя не, тогда бы ты задавал вопросы "почему я задницей сел на клаву, а она не написала мне работающий отлаженный проект, который можно показать профессору кодописания, чтобы он ахнул от краткости, лаконичности и гениальности мысли моей задницы".
Inellok
Обижаешь...
Inellok
Как я понял, function name() создаёт именно глобальную переменную, в которой хранится ссылочка
Snusmumriken
Да.
Snusmumriken
Скажи спасибо, что тут есть конструктор для добавления функций в уже созданные таблицы: local tbl = {} function tbl.foo(x, y) ... end А в конструкторе таблиц, ты делаешь только и исключительно добавление в эту таблицу переменных. Ничего другого.
Inellok
спасибо, что тут есть конструктор для добавления функций в уже созданные таблицы:
Taras 🦀
Переходи по ссылке и дрочи.
Дата перевода: 2016 Дата написания: 2013 на улице 2020 там точно нет "половина устарела еще на момент перевода" ? вопрос, ибо я новичек, и изучаю Tarantool
Snusmumriken
Дата перевода: 2016 Дата написания: 2013 на улице 2020 там точно нет "половина устарела еще на момент перевода" ? вопрос, ибо я новичек, и изучаю Tarantool
Наоборот слишком новое, для 5.2. Большая часть сидит на 5.1 (и tarantool тоже, помнится), потому что luajit.
Snusmumriken
Дата перевода: 2016 Дата написания: 2013 на улице 2020 там точно нет "половина устарела еще на момент перевода" ? вопрос, ибо я новичек, и изучаю Tarantool
И кстати, для любой актуальной версии луа можно читать учебник по любой версии луа. Разница незначительна, в основном — в очень невостребованных вещах, когда понадобятся фичи различных версий — учебник уже не особо нужен. Тут вам не js/python, и тем более не rust.
Timur
кстати хотел спросить, а кто-нибудь использует vanilla lua в не luajit (или какой другой jit)? из каких соображений? (некуда спешить?)
Snusmumriken
кстати хотел спросить, а кто-нибудь использует vanilla lua в не luajit (или какой другой jit)? из каких соображений? (некуда спешить?)
У себя на работе по историческим причинам: когда встраивали луа, основной версией была 5.1, luajit'а не было, а как появился — корни ванильной луа уже опоясали софтину с ног до головы, с кучей хаков и патчей (типа наличия continue, или возможности оформления любого блока do-end как функции).
Snusmumriken
Да не, патчи просто облегчают
Arslan
Как перегрузить бинарный оператор в стиле c++ cout? С одним аргументом нормально, а больше не может(
Arslan
Igor
Потому что у тебя метаметод __shl возвращает nil
Arslan
Тип self возвращать надо?
Igor
сделай в нём return self
Arslan
Попробую
Arslan
А можно передать аргументы sep, end (как в питоне) в функцию print?
Arslan
Или придется использовать std out?
Igor
А можно передать аргументы sep, end (как в питоне) в функцию print?
В смысле? Я не знаю "как в питоне" объясни попонятнее, тогда помочь смогу
Igor
Загуглил уже, вместо sep можешь table.concat использовать
Inellok
Как применять битовые операции?
Igor
print(table.concat({1, 3, 3, 7}, '-')) => 1-3-3-7
Igor
Как применять битовые операции?
В <Lua.5.3 модуль bit/bit32 В >Lua 5.3 операторы битовые есть
Inellok
А в луа-жид?👨
🐅🤦‍♂️
#!/usr/bin/env lua t = {} t.__index = t t.__shl = function(self, item) if not self.acc then self.acc = item else self.acc = self.acc + item end return self end t.__tostring = function(self, item) return self.acc end local q = setmetatable({}, t) print(q << 1 << 2) local c = q << 100 << 100 print(c) --q << 2000 -- а так не получится??
Arslan
В смысле? Я не знаю "как в питоне" объясни попонятнее, тогда помочь смогу
Просто функция print в луа добавляет nl в конце, решил просто перегрузить на io.stdout:write
Igor
Что именно не получается?
Igor
А в луа-жид?👨
В житах bit модуль, по стандарту загружен
Arslan
Сработало 🤣🤣🤣
Arslan
До этого что-то было не так
Igor
Ну и отлично
Igor
Реквирить нужно?
Говорю же, по стандарту загружен
Igor
просто таблица bit, в ней все функции
Inellok
У меня просто чистого JIT'а нет, есть только лове
Igor
В ловке тоже bit
Inellok
Интересный факт: если параметр функции один, и это таблица или строка, можно не ставить круглые скобки.
Inellok
Но скорее всего, тут все, кроме меня, уже давным-давно это знали. Тут вроде нет новичков в Lua.
Igor
Их много, просто не выдают себя
Inellok
Ясно.
Inellok
А вы знали про таблицу args в функциях Lua?
Inellok
Встроенную.
Igor
Это чуть ли не самое начало мануала
Inellok
Я об этом не так давно узнал.
Arslan
args в функциях?
Igor
-1ый элемент в ней - путь исполняемого файла lua, 0ой - скрипт, 1-... - это аргументы скрипта
Inellok
Ты о чём?
Arslan
То что скобки можно не ставить если аргумент - строка или таблица
Inellok
function example{bruh = 4, bro = 3} return 4 + 3 end
Inellok
Я вчера об этом узнал, когда читал доки амулета
Inellok
Там такое...