Adapa
А вот так. Да такая ошибка есть. А в новой версии нету ошибки.
Adapa
Да, меняется. Ошибки не возникает.
Ivan
поэкспериментируй, может получится
Adapa
А, это короче надо делать не в интерпретаторе, а в коде в отдельном файле. Тогда переменная не меняется, ошибку пишет.
Ivan
покажи чё пишет
Adapa
lua: test.lua:3: attempt to assign to const variable 'a'
Ivan
прикольно)
Ivan
lua: test.lua:3: attempt to assign to const variable 'a'
local <toclose> a = 34; setmetatable( a, { __close = function() print("a") end } можешь вот это проверить?
Adapa
Скобку пропустил) Вот что пишет: lua: test.lua:2: bad argument #1 to 'setmetatable' (table expected, got number) stack traceback: [C]: in function 'setmetatable' test.lua:2: in main chunk [C]: in ?
Ivan
хм, ну зафигачь таблицу)
Ivan
local <toclose> a = {}; setmetatable( a, { __close = function() print("a") end })
Adapa
Ошибок нету, принт сработал.
Ivan
теперь знаешь че сделай: local <toclose> a = {}; setmetatable( a, { __close = function() print("a") end }) setmetatable( a, { __gc = function() print("gc a") end })
Ivan
должно вывестись: a gc a
Adapa
Первый принт не сработал, ошибка: attempt to close non-closable variable 'a' Второй принт сработал. toclose что означает?
Ivan
Here, to close a value means to call its __close metamethod. https://www.lua.org/work/doc/manual.html#3.3.8
Ivan
ща мы починим
Ivan
mt = {} mt.__close = function() print("close a") end mt.__gc = function() print("gc a") end local <toclose> a = {} setmetatable(a, mt)
Ivan
типа деструктор
mihacooper [МСК -2]
очень фиговый деструктор
mihacooper [МСК -2]
т.к. опциональный
Ivan
потом проведи такой эксперимент: mt = {} mt.__close = function() print("close a") end mt.__gc = function() print("gc a") end local <toclose> a = {} setmetatable(a, mt) a = nil Должно быть наоборот: gc a close a
Adapa
Так, ошибок нет. "gc a" высветилось.
Ivan
только gc a?
Adapa
ага
Ivan
оу, я ошибся
Ivan
local <toclose> a = {}
Ivan
вот это исправь
Adapa
Хорошо сработало, без ошибок. Что это за колдунство?
Ivan
а что вывелось? ответь на нужное сообщение выводом
Adapa
Всё. Все два принта.
Ivan
последний эксперимент
Ivan
потом будем экспериментировать дальше: function foo() mt = {} mt.__close = function() print("close a") end mt.__gc = function() print("gc a") end local <toclose> a = {} setmetatable(a, mt) return a end local d = foo() print("======") Должно быть: close a ======= gc a
Adapa
Верно.
Ivan
колдунства никакого нет, вызов __close() возникает, когда переменная выходит из области видимости, в данном случае при выходе из функции
Ivan
но сборка мусора не произошла, поэтому не вызвался метод __gc() Она произойдёт в конце программы
Adapa
Теперь более менее понятно что ты делал.
Ivan
вроде таблица ещё жива __gc() не сработал, а __close() сработал
Lucky
подскажите, можно ли к таблице применить несколько методов подряд?
Lucky
типа mytable{}:metod1(), metod2()
Lucky
или как-то ещё?
Ivan
Он появится в новой версии. Я думаю, его нужно использовать, когда отключаешь сборщик мусора
Ivan
типа mytable{}:metod1(), metod2()
Возвращай self и вызывай на нем другой метод
Lucky
Спасибо! mytable{}:metod1(): metod2() сработало
Pavel
Вот ссылка на статью. Мало ли
Mark ☢️
https://habr.com/ru/company/moikrug/blog/461855/
В среднем, у человека одно яичко
Pavel
В среднем, у человека одно яичко
Именно поэтому там сделали самые разные разбивки. И компании, и города, и языки, и направления, и отрасли
Lucky
жінка не чоловік
Mark ☢️
жінка не чоловік
Особенно когда чёрная
Pavel
Даже 51%% даст 2
Anonymous
Mark ☢️
Даже 51%% даст 2
Нескажи. Есть куча людей с 1
Pavel
Нескажи. Есть куча людей с 1
Вряд их количество даже близко к 1%
Anonymous
ну так если так рассуждать то женского населения боьлше чем мужскоо (Китай исключение)
Serezha
В среднем, у человека одно яичко
Типичная ошибка плохой кластеризации данных
Serezha
Исследование норм и дает хорошее представление для коррекции ожиданий
🐅🤦‍♂️
https://habr.com/ru/company/moikrug/blog/461855/
Что такое пертенциль?
Mark ☢️
Что такое пертенциль?
Это забавная перестановка букв
Anonymous
Фулстек-разработчик в наши дни означает примерно следующее: — Собирать фронт. — Прогать бэк. — Поднимать сервер. — Писать на Хабр. — Записывать подкаст. — Анимировать ролик для Pixar. — Готовить яичницу одной рукой. — Делать всё это одновременно.
Pavel
Pavel
Что такое пертенциль?
Слртируешь выборку. 50%% это значение на середине отрезка
Pavel
75%% это значение на 3/4 отрещка
Serezha
фу-стек разработчик. реакт редукс вебпак бабел нода и вот это вот все
Anonymous
Та ну ладно тебе. Я спрос на фулстек вижу только от веб студий всяких. А им мало что нужно и з списка
а остальные взаимодействуют как с разработчиками? по какой схеме?
Anonymous
я как бы сам веб по тому и спрашиваю что не знаю как в других сферах дела обстаят
vvzvlad
...но очень интересно
Yuriy
всем ку помогие с паттерном нужно найти в строке слово aaa ИЛИ bbb
Yuriy
думал должно быть что то в духе s:match("[(aaa)(bbb)]")
Anonymous
Есть же палка
Anonymous
Ор в регекспах
Anonymous
Вот не знаю есть ли в луа паттернах такое
Anonymous
А обычная палка гуглится по запросу регексп ор
Yuriy
Есть же палка
regex != lua patterns