Lua:
Вывод отладочной информации
Как это сделать:
Вот краткая информация о выводе данных в Lua:
print("Привет, отладочный мир!") -- Выводит строку в консоль
local number = 42
print("Число:", number) -- Сочетание строк и чисел
local table = {name = "Lua", year = 1993}
print(table) -- Выводит ссылку на таблицу, не особо полезно
Пример вывода:
Привет, отладочный мир!
Число: 42
table: 0x194a330
Чтобы проникнуть внутрь таблицы и показать её содержимое, делайте так:
for key, value in pairs(table) do
print(key, "=", value)
end
Пример вывода:
name = Lua
year = 1993
Глубокое погружение
Вывод отладочной информации не нов и не феноменальный. Он надежен, как старый молоток. Понимаете, в старые времена крутых отладчиков не было. Кодеры использовали вывод, чтобы увидеть, где возникли проблемы. Функция print
в Lua проста. Она выталкивает вещи в stdout — это обычно ваш терминал.
Альтернативы? У Lua их много. Есть более сложный io.write()
, если вам нужно больше контроля, например, пропускать новые строки. Модули вроде inspect
лучше показывают содержимое ваших таблиц, чем это может сделать print
.
Реализация print
в исходном коде Lua на C проста. Она использует tostring
для каждого аргумента и выталкивает его в stdout
с новой строкой. LuaJIT, компилятор в реальном времени для Lua, использует тот же подход к print
, но надежнее.
Смотрите также
Получите больше информации:
- Официальная документация Lua по
print
: https://www.lua.org/manual/5.4/manual.html#pdf-print - Введение в LuaJIT: http://luajit.org/intro.html
- Разбор библиотеки
io
для подробного описанияio.write
: https://www.lua.org/manual/5.4/manual.html#6.8 - Модуль
inspect.lua
, когда надоело, что ваши таблицы скрываются: https://github.com/kikito/inspect.lua