Как сказал Егор, вы можете привести свой результат к строке перед тем, как вернуть ее, используя tostring
.
Я бы также добавил, что вы можете использовать dostring
, а не loadstring
.
Функция load
в lua означает компиляцию, а не запускать блок, вместо этого он возвращает функцию при вызове для запуска фрагмента. (loadfile
, loadstring
)
Функция do
скомпилирует и запустит содержимое. (dofile
, dostring
)
Подробности можно найти здесь: Lua: 8 - Компиляция, выполнение и ошибки
Как и dofile, loadfile также загружает кусок Lua из файла, но он не запускает кусок. Вместо этого он только компилирует кусок и возвращает скомпилированный кусок как функцию.
Этот раздел говорит более непосредственно с loadfile
, но страница охватывает loadstring
.
если dostring
не определено, это может быть так:
function dostring(s)
return assert(loadstring(s))()
end
Если вы используете версию lua позже, то 5.1 loadstring
становится load