Difference between revisions of "love.filesystem.load (Русский)"
(Created page with 'Загружает файл (но не запускает его). == Функция == === Вид === <source lang="lua"> chunk = love.filesystem.load( name ) </source> === Ар…') |
m |
||
Line 1: | Line 1: | ||
+ | {{newin|[[0.5.0]]|050|type=function}} | ||
Загружает файл (но не запускает его). | Загружает файл (но не запускает его). | ||
== Функция == | == Функция == | ||
Line 9: | Line 10: | ||
=== Возвращает === | === Возвращает === | ||
{{param (Русский)|function|chunk|Загруженный кусок.}} | {{param (Русский)|function|chunk|Загруженный кусок.}} | ||
+ | {{param|string|errormsg (nil)|Сообщение об ошибке, если файл не может быть открыт.}} | ||
== Пример == | == Пример == | ||
− | Важно отметить, что love.filesystem.load '''не''' вызывает код, она просто создает функцию | + | Важно отметить, что love.filesystem.load '''не''' вызывает код, она просто создает функцию, в которой будет находиться содержимое файла. Для того, чтобы выполнить код чанка достаточно просто вызвать полученную функцию: '''chunk()'''. |
Кроме того, стоит отметить, что загруженные файлы могут возвращать значения. Например этот файл: | Кроме того, стоит отметить, что загруженные файлы могут возвращать значения. Например этот файл: | ||
Line 25: | Line 27: | ||
− | Появится экран с ошибкой, если в выполняемом файле есть ошибка в коде. Чтобы этого избежать, | + | Появится экран с ошибкой, если в выполняемом файле есть ошибка в коде. Чтобы этого избежать, используйте функцию [https://lua.org.ru/contents_ru.html#pdf-pcall '''pcall''']: |
<source lang="lua"> | <source lang="lua"> | ||
− | chunk = love.filesystem.load | + | 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 -- если произошла ошибка | + | if not ok then -- если произошла какая-то ошибка, то выводим её |
− | + | print('The following error happened: ' .. tostring(result)) | |
− | else | + | else |
− | + | print('The result of loading is: ' .. tostring(result)) | |
+ | end | ||
end | end | ||
</source> | </source> |
Latest revision as of 01:33, 1 December 2021
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
Смотрите также
Другие языки
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info