_ENV
現在、クラスの使用を嫌っています。私はラテン系の Lua を作成しようとしています。正確に作成できないものもありますが_ENV
、はるかに効率的です。setfenv
非協力的でもありました。後続のコードは古いエラー
を返し続けます。attempt to call a nil value
loadstring() がチェックされている行 20 と、メイン チャンクで__latin()
関数を呼び出している行 23 を指定します。
function __latin(code)
__predecessor = [===[
function typographia(value)
print(value);
end
chorda = {};
chorda.__index = chorda;
function chorda.sub(chorda, cChorda, fChorda)
return string.sub(chorda, cChorda, fChorda);
end
function chorda:sub(chorda, cChorda, fChorda)
return string.sub(chorda, cChorda, fChorda);
end
--[[ define values --]]
_ENV = {salve="Salve, munde!",typographia=typographia,print=print,chorda=chorda,chorda.sub=chorda.sub}; ]===];
__finalizer = __predecessor .. " " .. code;
local status, err = pcall(loadstring(__finalizer));
print(err);
if (err == nil) then loadstring(__finalizer)(); end
end
__latin('typographia(salve); chorda.sub(salve, 1, 3);');