0 lua
我写了一些像这样的lua代码:
local a1 = 1
local a2 = 2
local a3 = 3
local a4 = 3
local a5 = 3
local a6 = 3
local a7 = 3
local a8 = 3
local a9 = 3
local a10 = 3
local a11 = 3
local a12 = 3
local a13 = 3
local a14 = 3
local a15 = 3
local a16 = 3
local a17 = 3
local a18 = 3
local a19 = 3
local a20 = 3
local a21 = 3
local a22 = 3
local a23 = 3
local a24 = 3
local a25 = 3
local a26 = 3
local a27 = 3
local a28 = 3
local a29 = 3
local a30 = 3
local a31 = 1
local a32 = 2
local a33 = 3
local a34 = 3
local a35 = 3
local a36 = 3
local a37 = 3
local a38 = 3
local a39 = 3
local a40 = 3
local a41 = 3
local a42 = 3
local a43 = 3
local a44 = 3
local a45 = 3
local a46 = 3
local a47 = 3
local a48 = 3
local a49 = 3
local a50 = 3
local a61 = 3
local a62 = 3
local a63 = 3
local a64 = 3
local a65 = 3
local a66 = 3
local a67 = 3
local a68 = 3
local a69 = 3
local a70 = 3
local function fun1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
print('.......')
end
local function fun2()
fun1(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
fun1(a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
fun1(a21, a22, a23, a24, a25, a26, a27, a28, a29, a30)
fun1(a31, a32, a33, a34, a35, a36, a37, a38, a39, a40)
fun1(a41, a42, a43, a44, a45, a46, a47, a48, a49, a50)
fun1(a51, a52, a53, a54, a55, a56, a57, a58, a59, a60)
fun1(a61, a62, a63, a64, a65, a66, a67, a68, a69, a70)
end
Run Code Online (Sandbox Code Playgroud)
我运行这段代码时遇到这样的错误:
78: function at line 71 has more than 60 upvalues
Run Code Online (Sandbox Code Playgroud)
我知道这种代码是丑陋的,我可以使用其他方式来做它(如表),但这种代码可能由我的用户编写.
有谁可以帮我解释一下,并告诉我如何避免这种情况?非常感谢.
告诉我怎么避免这个?
有个老笑话.一个男人走进医生的办公室说:"当我举起这样的手臂时疼得厉害." 医生说:"所以不要那样抬起你的胳膊."
如果您的用户编写了无法编译的Lua代码,那么您无法修复.这不是一个非法的编译错误,而不是像:
if condition --forgot the then
return something
end
Run Code Online (Sandbox Code Playgroud)
因此,如果您的代码将接受任意Lua脚本进行编译和执行,则需要能够处理不能编译的Lua脚本.无论出于何种原因
如果编译失败,请将错误报告给用户并尽可能恢复.