我有一个关于 lua eclipse ide 的问题,有人可以帮助我吗?
i have a problem with lua eclipse ide some one can help me?
你可以在这里看到问题
我在lua开始编程,我想做一个简单的程序。我遇到的问题是,如果我在代码中输入 if 函数,程序将不会启动并在启动时自动结束
正如您从图像中看到的那样,编译器说“已终止”
更新:现在代码如下所示
local function main()
print("insert four binary number for color encryption")
a,b,c,d = io.read("*n","*n","*n","*n")
a=n
b=n
c=n
d=n
end
main()
if(a == 1){
print(white)
}
then
print(black)
end
我把 if 移到了最后的 main() 下
现在控制台显示 nil
后跟
Exception in thread "main" com.naef.jnlua.LuaRuntimeException: ...t-win32.win32.x86_64\workspace\luabello\src\main.lua:10: attempt to call a boolean value
at com.naef.jnlua.LuaState.lua_pcall(Native Method)
at com.naef.jnlua.LuaState.call(LuaState.java:555)
at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.run(JNLua51Launcher.java:128)
at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.main(JNLua51Launcher.java:143)
更新 2:现在代码如下所示
local function main()
print("insert four binary number for color encryption")
a,b,c,d = io.read("*n","*n","*n","*n")
end
main()
a=n
b=n
c=n
d=n
if(a <= 1){
print(white)
}
then
else
print(black)
end
它给了我另一个错误
Exception in thread "main" com.naef.jnlua.LuaRuntimeException: ...t-win32.win32.x86_64\workspace\luabello\src\main.lua:11: attempt to compare nil with number
at com.naef.jnlua.LuaState.lua_pcall(Native Method)
at com.naef.jnlua.LuaState.call(LuaState.java:555)
at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.run(JNLua51Launcher.java:128)
at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.main(JNLua51Launcher.java:143)
您的 if 条件可能不是您期望的那样,
if(a == 1){
print(white)
}
这将尝试调用 a == 1
的结果并传递第一个参数 {print(white)}
然后评估是否为真,但是您将收到错误,因为您无法调用的结果a == 1
因为它是一个布尔值。
我相信你的意思是:
if(a == 1) then
print(white)
else
print(black)
end
你还设置了两次a,b,c,d
,
- 到
io.read("*n","*n","*n","*n")
的结果
- 到
n
未定义,因此值设置为 nil
你可以在这里看到问题
我在lua开始编程,我想做一个简单的程序。我遇到的问题是,如果我在代码中输入 if 函数,程序将不会启动并在启动时自动结束
正如您从图像中看到的那样,编译器说“已终止”
更新:现在代码如下所示
local function main()
print("insert four binary number for color encryption")
a,b,c,d = io.read("*n","*n","*n","*n")
a=n
b=n
c=n
d=n
end
main()
if(a == 1){
print(white)
}
then
print(black)
end
我把 if 移到了最后的 main() 下
现在控制台显示 nil
后跟
Exception in thread "main" com.naef.jnlua.LuaRuntimeException: ...t-win32.win32.x86_64\workspace\luabello\src\main.lua:10: attempt to call a boolean value
at com.naef.jnlua.LuaState.lua_pcall(Native Method)
at com.naef.jnlua.LuaState.call(LuaState.java:555)
at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.run(JNLua51Launcher.java:128)
at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.main(JNLua51Launcher.java:143)
更新 2:现在代码如下所示
local function main()
print("insert four binary number for color encryption")
a,b,c,d = io.read("*n","*n","*n","*n")
end
main()
a=n
b=n
c=n
d=n
if(a <= 1){
print(white)
}
then
else
print(black)
end
它给了我另一个错误
Exception in thread "main" com.naef.jnlua.LuaRuntimeException: ...t-win32.win32.x86_64\workspace\luabello\src\main.lua:11: attempt to compare nil with number
at com.naef.jnlua.LuaState.lua_pcall(Native Method)
at com.naef.jnlua.LuaState.call(LuaState.java:555)
at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.run(JNLua51Launcher.java:128)
at org.eclipse.ldt.support.lua51.internal.interpreter.JNLua51Launcher.main(JNLua51Launcher.java:143)
您的 if 条件可能不是您期望的那样,
if(a == 1){
print(white)
}
这将尝试调用 a == 1
的结果并传递第一个参数 {print(white)}
然后评估是否为真,但是您将收到错误,因为您无法调用的结果a == 1
因为它是一个布尔值。
我相信你的意思是:
if(a == 1) then
print(white)
else
print(black)
end
你还设置了两次a,b,c,d
,
- 到
io.read("*n","*n","*n","*n")
的结果
- 到
n
未定义,因此值设置为nil