Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 卢阿<;eof>;预计接近';打印';_Lua_Eof_Zerobrane - Fatal编程技术网

Lua 卢阿<;eof>;预计接近';打印';

Lua 卢阿<;eof>;预计接近';打印';,lua,eof,zerobrane,Lua,Eof,Zerobrane,我在卢阿遇到麻烦了 问题一: 每次运行以下程序时,控制台都会告诉我: 预期在“本地”附近“结束”(关闭第1行的“功能”) 请注意我在所有caps注释中标记的错误详细信息 function m11() local inst = mc.mcGetInstance() -- controller instance local gcodeLineNbr = mc.mcCntlGetGcodeLineNbr(inst) -- get current Gcode line number

我在卢阿遇到麻烦了

问题一: 每次运行以下程序时,控制台都会告诉我:

预期在“本地”附近“结束”(关闭第1行的“功能”)

请注意我在所有caps注释中标记的错误详细信息

function m11()
    local inst = mc.mcGetInstance() -- controller instance
    local gcodeLineNbr = mc.mcCntlGetGcodeLineNbr(inst) -- get current Gcode line number
    local gcodeLineStr = mc.mcCntlGetGcodeLine(inst, gcodeLineNbr)  -- get current Gcode line


    function valFromLine(string, axis)
        local startPoint = string.find(string, axis) + 1
        local outputVal = ""
        local isNum = true
        while isNum do
            local num = string.sub(string, startPoint, startPoint)
            startPoint = startPoint + 1
            if num ~= " " then
                outputVal = outputVal .. num
            else
                isNum = false
            end
        end
        outputVal = tonumber(outputVal)
    end
    return outputVal

    --COMPILER HIGHLIGHTS FOLLOWING LINE AS LOCATION OF ERROR
    local gcodeLocX = valFromLine(gcodeLineStr, "X")
    local curLocX = mc.mcAxisGetPos(inst, 0)        -- get current X axis value
    local curLocY = mc.mcAxisGetPos(inst, 1)        -- get current Y axis value
    local curLocZ = mc.mcAxisGetPos(inst, 2)        -- get current Z axis value
    local curAngB = mc.mcAxisGetPos(inst, 4)        -- get current C axis value
    local curAngC = mc.mcAxisGetPos(inst, 5)        -- get current C axis value
    local toolOffset = mc.mcCntlGetToolOffset(inst, 2)  -- get tool offset for axis Z

    function rotateToolB()
        local comHypot = toolOffset * math.sin(angle)       -- get XY planar dist from C pivot to tool centre point
        local compDestinX = comHypot * math.sin(math.rad(90) - curAxisC + curLocX
    end
end
--END OF M11() FUNCTION SHOULD BE HERE

if (mc.mcInEditor() == 1) then
    m11()
end
我不明白为什么它希望m11()能这么早关闭

问题二: 我在一个完全独立的文件中重写了valFromLine(),得到:

“eof”应接近“打印”


我已经计算了我的“end”语句,在这两个代码示例中都找不到它们有什么问题。在这一点上,我完全没有主意,请帮忙。谢谢。

返回outputVal
位于错误的位置。将其移动到函数行中。 不能在函数外部返回

正确:

function someFunction()
  -- do something
  local something = "something"
  return something
end
错:

function someFunction()
  -- do something
  local something = "something"
end
return something

使用函数定义全局函数也不是很干净,请使用局部变量。

return outputVal
位于错误的位置。将其移动到函数行中。 不能在函数外部返回

正确:

function someFunction()
  -- do something
  local something = "something"
  return something
end
错:

function someFunction()
  -- do something
  local something = "something"
end
return something

使用函数定义全局函数也不是很干净,请使用局部变量。

不要忘记它必须是函数中的最后一项。您可以从函数外部返回。或者,更准确地说,您不能跳出函数,因为Lua中的“文件”隐式地是vararg函数。实际错误是,在
return
语句之后不能有更多语句,因此
print
行失败。@ColonelThirtyTwo我编写了“The”函数。对不起,如果这不够精确的话。谢谢你的提示。谢谢你的提醒。我认为我的位置是正确的,因为我引用了一个程序的API指南,它显示了一个例子,其中“return”写在“end”之后。正如你可能猜到的,我刚刚开始为这个项目学习Lua。再次感谢。别忘了它必须是函数中的最后一项。您可以从函数外部返回。或者,更准确地说,您不能跳出函数,因为Lua中的“文件”隐式地是vararg函数。实际错误是,在
return
语句之后不能有更多语句,因此
print
行失败。@ColonelThirtyTwo我编写了“The”函数。对不起,如果这不够精确的话。谢谢你的提示。谢谢你的提醒。我认为我的位置是正确的,因为我引用了一个程序的API指南,它显示了一个例子,其中“return”写在“end”之后。正如你可能猜到的,我刚刚开始为这个项目学习Lua。再次感谢。