1

我刚刚开始使用基本的 Lua 解释器,我遇到了这个问题:

a = tonumber(a)
b = tonumber(b)
if a < 1 or b < 1 or a > x or b > x then
    ...
end

我收到一条错误消息:

Attempt to compare number with string expected, got number

我是新手。该语句应该如何用 Lua 编写?

编辑: x 设置为输入参数之一。我很肯定它是一个数字,而不是一个字符串;在前面的语句中,我将它用作 for 循环中的最大值。

4

1 回答 1

3

x 被设置为输入参数之一。我很肯定它是一个数字,而不是一个字符串;在前面的语句中,我将它用作 for 循环中的最大值。

输入参数 (from arg) 始终是字符串,将在 for 循环中强制转换为数字:

for i = 1, "4" do print(i) end
-- 1
-- 2
-- 3
-- 4

但是,在这种情况下,您似乎需要使用tonumber().

于 2012-12-25T03:27:09.313 回答