У каждого объекта есть ссылка, с которой может быть связана переменная, правильно?
№ Lua представляет значения как помеченные союзы (тип, значение). Для переменных, представляющих number
, bool
или nil
, значение сохраняется непосредственно в объединении. Для string
, table
, function
, userdata
и thread
это значение является указателем (ссылкой) или набором указателей, которые коррелируют с местоположением памяти заголовка объекта.
Как выглядят эти ссылки?
Как сказал Оберон, опорные точки на пятно в памяти, если они представлены в шестнадцатеричном виде, выглядят как 0x0 ..
Если да, существует ли функция, которая может отображать ссылку на более примитивные типы, такие как строка и номер?
number
, bool
или nil
, не имеют каких-либо ссылок. Для строк нет стандартного способа печати своих адресов в Lua. Для table
, function
и thread
Вы можете использовать печать(). Не уверен насчет userdata, вам, возможно, нужно будет определить себя.
Многие детали реализации этих типов покрыты простым языком в this article.
Я попытался добавить эти улучшения в ответ Оберона, но мое редактирование не было одобрено. –