先に「ASSERT、例外処理」内にあるpcallの記述を見ておいたほうが、Luaにおける実装指針が理解できるので良い。
先述した通り。
ファイル(のチャンクを)中間コードにコンパイルして、実行する
該当のファイル(のチャンクを)中間コードにコンパイルして返す。
内容を実行はしない。
返り値:
成功 コンパイル済みチャンク 失敗 nil と エラーメッセージ (例: nil, cannot open *****.lua) を返す。
loadfileはチャンクを実行しないので注意。
即ち、dofileとloadfileの関係は自作するなら、以下のようにあらわせるfunction dofile (filename) local f = assert(loadfile(filename)) -- loadfileは実行しない。コンパイルしたチャンクを無名関数として返すのみ return f() -- 実行 end