Size: a a a

2020 January 23

S

Snusmumriken in pro.lua
С другой стороны, гугл — далеко, и ему на нас пофигу. А вот яндекс — близко : )
источник

S

Stunni in pro.lua
Snusmumriken
С другой стороны, гугл — далеко, и ему на нас пофигу. А вот яндекс — близко : )
Ага
источник

S

Stunni in pro.lua
9
источник

RS

Roman Silin in pro.lua
А возможно при определении таблицы внутри прочитать свойство самой определяемой таблицы, которое уже установлено?
источник

RS

Roman Silin in pro.lua
Помимо обычного решения как это:
источник

RS

Roman Silin in pro.lua
источник

D

Denis in pro.lua
я думаю нет
источник

m

mihacooper in pro.lua
Roman Silin
А возможно при определении таблицы внутри прочитать свойство самой определяемой таблицы, которое уже установлено?
Не, нельзя
источник

RS

Roman Silin in pro.lua
Понятно, спасибо 🙂
источник

IB

Ivan Bessarabov in pro.lua
Roman Silin
Помимо обычного решения как это:
другой вариант - еще можно заранее положить жто в переменную, а потом 2 раза использовать
источник

RS

Roman Silin in pro.lua
источник

RS

Roman Silin in pro.lua
Таки да, можно и так ) Пошел выбирать что эстетичнее
источник
2020 January 24

S

Snusmumriken in pro.lua
Кстати, на тему обфускации. Есть же zalgo!
Конечно, это где-то на уровне "нечитаемых переменных", но тут ещё прекол с поисковыми полями для замены, чтобы повысить читаемость — оно далеко не везде работает с _таким_ юникодом.
источник

АК

Александр Караев in pro.lua
Привет.
Можно ли как-то заставить lua 5.3 воспринимать юзердату в ключах для таблиц не по ссылке? Может есть какой-то метаметод или трюк?
Например, я имею свой struct ID { int a, b; } и хочу, чтобы

tbl = {}
tbl[ID:new(0, 0)] = 1
assert(tbl[ID:new(0, 0)] == 1)
источник

S

Snusmumriken in pro.lua
Не а. Юзердата — это всегда ссылки : )
источник

АК

Александр Караев in pro.lua
может, я как-то заставлю луа автоматом конвертировать юзердату в number при использовании в качестве ключа?
источник

АК

Александр Караев in pro.lua
хотя, вижу решение - сделать кастомную табличку, которая будет иначе взаимодействовать с ID в качестве ключей (__index / __new_index), но это немасштабируемо
источник

S

Snusmumriken in pro.lua
1. Можешь использовать tostring как генератор ID:
tbl[tostring(udata)] = udata
Луа присваивает юзердатам уникальный идентификатор.

2. Можно написать кастомный tostring для юзердаты, и делать почти то же самое, но тогда юзердата которая одинаково тострингается — будет как бы одинаковой.
источник

АК

Александр Караев in pro.lua
ну вот я хотел бы, чтобы ID:new(0, 0) == ID:new(0, 0). Это работает в случае переопределения __eq. Но когда два эквивалентных ID используются в качестве ключа, они уже не эквивалентны
источник

АК

Александр Караев in pro.lua
В идеале, хотелось бы иметь некий __hash метаметод
источник