Roy
ну и в чём проблема?
Я же дважды поиск по хеш таблице выполняю
mva
ну, это проблема твоей архитектуры
mva
в частности того, что у тебя хештаблица с никами и ники там по id, а не хештаблица с игроками по id И ник - атрибут внутри конкретного объекта "игрок"
mva
при правильной архитектуре такой поиск не является проблемой хоть как-нибудь сказывающейся на производительности
Tony
Ради чего
Tony
Почему всё по умолчанию глобальное
Tony
И нет констант
fgntfg
Такой язык
Tony
Такой язык
Вот интересно, почему он такой
mva
Вот интересно, почему он такой
потому что его таким сделали
mva
нефтяникам для которых писали так было нужно
mva
как и нумерация с 1
Tony
потому что его таким сделали
Вот интересно, почему Это же всё принятые решения, явно не на пустом месте
mva
https://t.me/ProLua/86006
mva
какие было ТЗ так и сделали
Roy
https://onecompiler.com/lua/3xew8axfk
Roy
Прикольно
Roy
А вот так действительно ссылка
Roy
Хитрожопый луа
Александр
А вот так действительно ссылка
в первом случае тоже была ссылка...
Roy
поменял wtf = {} такую инициализацию
Roy
и все
Roy
пропала ссылка
Highly Likely
https://onecompiler.com/lua/3xew8axfk
У тебя 9 и 11 строки между собой абсолютно никак не связаны
mva
ну, почти
mva
они связаны переинициализацией wtf
Highly Likely
:)
Roy
так погодите-ка
Roy
https://onecompiler.com/lua/3xewaayt5
Roy
а так уже не ссылка
Roy
Я сначала подумал может я до этого переинициализировал
Roy
но щас проверил присвоением, вроде нет
mva
ещё раз
mva
https://onecompiler.com/lua/3xewaayt5
тут ты тоже переинициализируешь wtf
mva
и делаешь её строкой вместо ссылки на таблицу
mva
так работают (все) языки с динамической типизацией
Roy
Ты мне логику сломал
Roy
Я пытаюсь вкурить, но не вкуриваю
Roy
Я же спецом добавил ниже for для вывода ключа и значения
Roy
Прикол в том, что когда я меняю само value, то изменения не влияют на таблицу
Roy
а когда я меняю объекты внутри value, то все норм
mva
s/самое value/значение переменной/
mva
ещё раз: именно так и работают языки с динамической типизацией (да и считай вообще все не-функциональные, наверное)
Highly Likely
wtf = table[key] — здесь wtf хранит в себе ссылку на объект, если table[key] вернула таблицу wtf = 10 — здесь wtf присвоилось 10, значение по ссылке не изменено wtf.a = 42 — здесь аттрибут a в объекте по ссылке, которая есть в wtf, присвоилось 42
mva
wtf - это переменная. Самостоятельная. когда ты делаешь wtf=players она становится указателем на таблицу players. И манипуляции с wtf как таблицей - имеют эффект на players
Highly Likely
Пытался привести пример с указателями на C, но там чот еще сложнее объяснение будет :)
Roy
Понял
mva
как только ты делешь wtf=что-угодно-другое - она становится ДРУГОЙ сущностью
mva
и перестаёт быть ссылкой на players
Roy
Но выглядит как геморрой, потому что это напоминает мне голые указатели в С++ и Си, потому что можно забыть присвоить новые данные таблице
mva
(т.е. без ООП-операций, просто присваивая переменной новое значение)
mva
Звездочка в Си :-)
это же указатель
mva
в луне нет такого типа переменных :)
Александр
Вообще, не советую всерьез воспринимать роя, он звезда местных чатиков - помешан на преждевременной оптимизации и (неправильных) бенчмарках
Roy
а что, есть хоть один язык где такое бы стработало именно в том виде как это делаешь ты?
а я хз, я только с lua знаком и с pawn, ну и java и шарп немного, а так я С++
Roy
Вообще, не советую всерьез воспринимать роя, он звезда местных чатиков - помешан на преждевременной оптимизации и (неправильных) бенчмарках
Ну да, я помешан на оптимизациях, я вот не могу понять прикола с таблицей, зачем делать так чтоб два раза нужно было обращаться
Roy
Ну сделайте функцию в луа чтоб явно можно было сказать что это будет ссылкой
Roy
даже если ты ее переинициализируешь
mva
Ну да, я помешан на оптимизациях, я вот не могу понять прикола с таблицей, зачем делать так чтоб два раза нужно было обращаться
преждевременные оптимизации это не оптимизации а бессмыленная трата времени, потому что они делают так, что сама суть не будет написана никогда
Roy
Ну типа local wtf = reference(Table[id]) wtf = "govno"
Roy
и все, ты не переинициализируешь, а меняешь value в таблице на которую ссылается wtf, потому что ты заюзал reference
mva
остальных устраивает как есть
Roy
тебе надо - ты и сделай
Ну согласись, запас ж*пу не е**т же
Roy
Пускай будет функция, она же не мешает
Roy
Зато кому надо - воспользуются
mva
нет
mva
функцией это не сделаешь
mva
это нужно переписывать весь движок языка
Roy
Ну обертку сделать не вариант?
mva
это будет уже другой диалект
Roy
чтоб reference генерировал объект внутри которого содержится указатель на value таблицы
mva
а так - вариант, Луиз даже инструмент для этого написал