Подтвердить что ты не робот

Как проверить пользовательские данные в lua

Я использую inspect.lua для проверки таблицы на строку.

Но если значение является userdata, оно возвращает только <userdata 1>

Мне действительно нужно знать, что такое тип userdata, каково значение userdata, это очень важно для отладки, я не хочу делать это в любой среде IDE, я просто хочу, чтобы что-то могло помочь мне отлаживать сотрудники печати. ​​

4b9b3361

Ответ 1

Вы не можете.

Из manual:

Предоставляется тип userdata, позволяющий хранить произвольные данные C в переменных Lua. Значение userdata является указателем на блок необработанной памяти. [...] Пользовательские данные не имеют предопределенных операций в Lua, за исключением назначения и проверки подлинности.

Как указано @Eric, единственное, что вы можете сделать из Lua, - это проверить метатебель:

print(inspect(getmetatable(someuserdata)))

Если вы используете C API, вы должны иметь возможность зарегистрировать настраиваемую функцию, которая печатает все, что удерживается блоком.