Lua - if语句中的语法错误

oko*_*man 1 syntax lua

刚尝试执行一个小的Lua脚本,但不幸的是我做错了.我没有更多的想法可能是错误.

function checkPrime( n )
    for i = 2, n-1, 1 do
        if n % i == 0 then
            return false
        end
    end
    return true
end
Run Code Online (Sandbox Code Playgroud)

口译员说:

lua: /home/sebastian/luatest/test.lua:3: `then' expected near `%'
Run Code Online (Sandbox Code Playgroud)

我认为这不是一件大事,也许很清楚是什么问题.但不知怎的,我现在看不到它.

Dav*_*nak 6

可能有一些版本问题,检查你的版本的lua.使用'%'作为模数的中缀运算符只能在Lua 5.1中使用,在5.0中它尚不支持.请尝试使用math.mod:

if math.mod(n,i) == 0 then
Run Code Online (Sandbox Code Playgroud)

编辑:还要注意,在5.1中,math.mod仍然存在,但它已被重命名为math.fmod.目前,旧名称仍然有效,但在将来的版本中可能会删除支持.