为什么 tointeger 函数在 Lua 中返回 nil?

Why does tointeger function returns nil in Lua?

提问人:Dedulya 777 提问时间:11/10/2023 最后编辑:Dedulya 777 更新时间:11/10/2023 访问量:57

问:

非常简单的prolem,但我不知道该怎么做。我通常用 c++ 编写,但现在我还需要学习 Lua。我只是不明白为什么 math.tointeger() 在我输入没有奇数(如“23”)的十进制数时返回 nil。我在 VSCode 中使用 Lua 5.4.2。扩展:Tom Blind 的本地 Lua 调试器、bschulte 的 LOVE、sumneko 的 Lua、rog2 的 Luacheck。 代码如下:

local dev
--reading input
local line = io.read()
dev = math.tointeger(line)
--math.tointeger() returns nil so the dev variable is nil
print(line:byte(1,#line)) --input: 23 output: 101 118 97 108 32 50 51
if dev < 50 --error cuz of trying to compare nil with a number
then
    dev = line
    for ii = dev, 50, 1
    do
        print(ii)
    end
else
    print("number is bigger than 49!")
end

我也尝试使用 tonumber() 函数,但它也返回 nil。我只是希望这个函数会像往常一样工作:将字符串转换为整数并将此值分配给 dev 变量。

lua null

评论


答: 暂无答案