Difference between revisions of "love.filesystem.load (日本語)"
m |
m (→用例) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 12: | Line 12: | ||
{{param|string|errormsg (nil)|ファイルを開けない場合はエラーメッセージ}} | {{param|string|errormsg (nil)|ファイルを開けない場合はエラーメッセージ}} | ||
== 用例 == | == 用例 == | ||
− | + | 重要な注意点は love.filesystem.load では''コードを実行しません'''が、ファイルの内容を読み込んで関数('チャンク') として作成します。チャンクの末尾に () を付けるとチャンクを実行します。 | |
− | + | 注目すべき点は、チャンクから返値を返せます。例えば、このファイルでは: | |
<source lang="lua"> | <source lang="lua"> | ||
return 1+1 | return 1+1 | ||
Line 27: | Line 27: | ||
</source> | </source> | ||
− | + | 読み込まれたファイルに構文エラーがある場合はブルースクリーン (白色の文字に水色の背景) を表示します。不正ファイルで、ゲームの実行を継続するならば(たとえば利用者によって記述されたソースコード)、[https://www.lua.org/manual/5.1/manual.html#pdf-pcall '''pcall'''] でチャンクを呼び出すことにより保護できます: | |
<source lang="lua"> | <source lang="lua"> |
Latest revision as of 16:59, 10 July 2019
LÖVE 0.5.0 から使用可能 |
この関数は以前のバージョンでは非対応です。 |
lua ファイルを読み込みます (が実行はしません)。
関数
概要
chunk, errormsg = love.filesystem.load( name )
引数
string name
- ファイルの名前 (およびパス)
返値
用例
重要な注意点は love.filesystem.load ではコードを実行しません'が、ファイルの内容を読み込んで関数('チャンク') として作成します。チャンクの末尾に () を付けるとチャンクを実行します。
注目すべき点は、チャンクから返値を返せます。例えば、このファイルでは:
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 happend: ' .. tostring(chunk))
else
ok, result = pcall(chunk) -- 安全なチャンクの実行
if not ok then -- エラー発生時は false になります
print('The following error happened: ' .. tostring(result))
else
print('The result of loading is: ' .. tostring(result))
end
end
関連