love.filesystem.load
Доступно начиная с LÖVE 0.5.0
Эта функция не поддерживается в более ранних версиях.
Загружает файл Lua (но не выполняет его).
Функция
Синопсис
chunk, errormsg = love.filesystem.load( name )
Аргументы
string name- Имя (и путь) файла.
Возвращаемые значения
function chunk- Загруженный фрагмент кода.
string errormsg (nil)- Сообщение об ошибке, если файл не удалось открыть.
Пример
Важно отметить, что love.filesystem.load не вызывает код, а только создаёт функцию (фрагмент кода), которая будет содержать содержимое файла. Для выполнения фрагмента кода необходимо добавить скобки () после него.
Также стоит отметить, что загруженные файлы могут возвращать значения. Например, следующий файл:
return 1+1
Вернёт 2, если вызвать его так:
chunk = love.filesystem.load( name ) -- load the chunk
local result = chunk() -- execute the chunk
print('result: ' .. tostring(result)) -- prints 'result: 2'
Это приведёт к ошибке, если в загруженном файле есть синтаксическая ошибка. Если вы хотите продолжить игру, даже если файл некорректен (например, если вы ожидаете, что его напишут пользователи), вы можете защитить вызов фрагмента кода с помощью pcall:
local ok, chunk, result
ok, chunk = pcall( love.filesystem.load, name ) -- load the chunk safely
if not ok then
print('The following error happened: ' .. tostring(chunk))
else
ok, result = pcall(chunk) -- execute the chunk safely
if not ok then -- will be false if there is an error
print('The following error happened: ' .. tostring(result))
else
print('The result of loading is: ' .. tostring(result))
end
end
См. также
© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/love.filesystem.load