169 похожих чатов

Всем привет. У меня есть таблица значений. Можно как-то присвоить

ячейке этой таблице ссылку на значение (number или string) из другой таблице? Чтобы при изменении значения x в таблице B оно также менялось в таблице A?

16 ответов

20 просмотров

Гипотетически, но нужны прокси-таблицы. tableA, tableB = {}, {} proxtA, proxtB = {}, {} local function __newindex(t, k, v) rawset(tableA, k, v) rawset(tableB, k, v) end setmetatable(proxtA, {__index = tableA, __newindex = __newindex}) setmetatable(proxtB, {__index = tableB, __newindex = __newindex}) Для изменения и получения ключей используешь прокси. Они пустые.

Ярослав-Денисов Автор вопроса
Snusmumriken
Гипотетически, но нужны прокси-таблицы. tableA, t...

Пойду почитаю по-подробнее про прокси-таблицы, спасибо

А теперь главный вопрос: зачем оно тебе? ))

Ярослав-Денисов Автор вопроса
Snusmumriken
А теперь главный вопрос: зачем оно тебе? ))

аниматор делаю с конечным автоматом... если при иницализации нового состояния не указать какие-то параметры, то они берутся из default состояния. нужно чтобы во время игры при изменении default во всех состояниях что взяли его значение значение тоже поменялось

Я бы сделал одну табличку(1) с парами ключ - хранимое значение. Во всех других таблицах хранил не данные, а этот ключ. Данные брал соответственно из таблички (1) непосредственно перед использованием.

Ярослав-Денисов Автор вопроса
🐅🤦‍♂️ Денис
Я бы сделал одну табличку(1) с парами ключ - хран...

metatable с __index ключем это именно то, что мне нужно

Ярослав Денисов
metatable с __index ключем это именно то, что мне ...

Я с метатаблицами не очень дружу. Как прокси не применял их не разу. В основном я делаю примитивное ООП на __index, без наследования даже.

🐅🤦‍♂️ Денис
Я с метатаблицами не очень дружу. Как прокси не пр...

Побаиваюсь метатабличек потому что для меня не всегда очевидно то, что они делают, даже после прочтения доков. Первое время вообще воткнуться не мог как работают слабый ключ/слабое значение, допустим. Так что я тоже дальше примитивного ООП стараюсь не уходить. Чем больше приходится умственных усилий приложить для понимания принципа работы используемых методов, тем выше вероятность прострелить себе ногу, используя эти самые методы.

Igor
Побаиваюсь метатабличек потому что для меня не все...

Именно неочевидность. Иногда я думаю они полезны. Это как в c++ типы с перегруженными методами. Вроде удобно, но легко запутаться.

🐅🤦‍♂️ Денис
Именно неочевидность. Иногда я думаю они полезны. ...

Время, которое я уделяю тому или иному инструменту программирования зависит как раз от его уровня очевидности. Именно по этому я не трогаю кресты и подобные им от слова совсем. Я не получаю ни качественного результата, ни удовольствия от разработки на неочевидных инструментах.

Igor
Время, которое я уделяю тому или иному инструменту...

Не получаю удовольствия от плюсов. Некоторое время изучаю Раст. Там свои косяки - долгая компиляция, текут версии пакетов постоянно. Непривычный язык, но писать на нем - в охоточку! На привычные вещи смотрю новым взглядом.

Igor
Побаиваюсь метатабличек потому что для меня не все...

Чем больше используешь тем проще и очевиднее становится. Я настолько преисполнился, что в доку давно не смотрю. Единственное где можно прям напороться — на неиспользовании rawset в тех местах, где он может привести к рекурсии метатаблички.

Snusmumriken
Чем больше используешь тем проще и очевиднее стано...

снюс, сори за прямолинейность, а как на сях реализовали метатаблицы в луа?

Snusmumriken
Чем больше используешь тем проще и очевиднее стано...

Так-то да, но чем выше изначальный уровень неочевидности, тем сильнее инструмент меня отталкивает.

Igor
Так-то да, но чем выше изначальный уровень неочеви...

Схема очень простая и очень логичная, а если ты будешь забивать на всё непонятное - у тебя как бы не будет стимула развиваться.

Snusmumriken
Схема очень простая и очень логичная, а если ты бу...

Спорное утверждене. Знать и уметь нужно, но пользоваться не обязательно. Это как на плюсах пишешь когда - на мой взгляд лучше ограничить себя подмножеством языка. Фичи лучше знать все практически, но не в совершенстве. И в каждом проекте выбирать - стиль Си с классами и нет? Исключения или нет? Умные указатели или нет? И так далее.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта