love.filesystem.load (Русский)

Available since LÖVE 0.5.0
This function is not supported in earlier versions.

Загружает файл (но не запускает его).

Функция

Вид

chunk = love.filesystem.load( name )

Аргументы

string name
Имя (и путь) файла.

Возвращает

function chunk
Загруженный кусок.
string errormsg (nil)
Сообщение об ошибке, если файл не может быть открыт.

Пример

Важно отметить, что love.filesystem.load не вызывает код, она просто создает функцию, в которой будет находиться содержимое файла. Для того, чтобы выполнить код чанка достаточно просто вызвать полученную функцию: chunk().

Кроме того, стоит отметить, что загруженные файлы могут возвращать значения. Например этот файл:

return 1+1

Вернет 2, когда будет вызван таким образом:

chunk = love.filesystem.load( name ) -- загружает кусок
local result = chunk() -- выполняет кусок
print('result: ' .. tostring(result)) -- выводит 'result: 2'


Появится экран с ошибкой, если в выполняемом файле есть ошибка в коде. Чтобы этого избежать, используйте функцию pcall:

local ok, chunk, result
ok, chunk = pcall( love.filesystem.load, name ) -- безопасно загружаем файл
if not ok then
  print('The following error happened: ' .. tostring(chunk))
else
  ok, result = pcall(chunk) -- безопасно выполняем загруженный код

  if not ok then -- если произошла какая-то ошибка, то выводим её
    print('The following error happened: ' .. tostring(result))
  else
    print('The result of loading is: ' .. tostring(result))
  end
end

Смотрите также

Другие языки