NL_dofileの仕様確認

NL_dofileについて調べてみた。

疑問1:NL_dofileに複数の引数を与えたらどうなるか。

system.lua
NL_dofile("sample1.lua", "sample2.lua")
sample1.lua
--sample1.lua
do
	NSOkBox("sample1", "通った!")
end
sample2.lua
--sample2.lua
do
	NSOkBox("sample2", "通った!")
end

結果1:"sample2"は表示されなかった。二つ目以降は無視されるようだ。

疑問2:文字列以外を引数に与えたらどうなるか。

system.lua
--system.lua
NL_dofile() -- 1.nil
NL_dofile(nil) -- 2.nil
NL_dofile(1) -- 3.number
NL_dofile("string") -- 4.string
NL_dofile(true) -- 5.boolean
NL_dofile({}) -- 6.table

結果2

1
エラーが出て止まる。
2
エラーが出て止まる。
3
何も起こらず続きが実行される。
4
ファイルが存在しないとエラーが出て止まる。
5
エラーが出て止まる。
6
エラーが出て止まる。

疑問3:同じファイルを二度読み込んだらどうなるか。

sytstem.lua
--system.lua
NL_dofile("sample.lua") -- 一回目の読み込み
NL_dofile("sample.lua") -- 二回目の読み込み
sample.lua
--sample.lua

count = count or 0
do
	count = count + 1
	NSOkBox(tostring(count), "通った回数")
end

結果3:ボックスが二回出た。つまり、同じことが何度でも実行される。

疑問4:NL_dofileの最中にNL_dofileは可能か?

system.lua
--system.lua
NL_dofile("sample1.lua")
sample1()
sample2()
sample1.lua
--sample1.lua

NL_dofile("sample2.lua")

do
	function sample1()
		NSOkBox("俺、参上!", "sample1")
	end
end
sample2.lua
--sample2.lua

do
	function sample2()
		NSOkBox("俺、参上!", "sample2")
	end
end

結果4:どうやらできるっぽい。sample1とsample2が問題なく実行できた。