Lua布尔化合物或

时间:2012-12-25 02:44:04

标签: lua boolean runtime-error comparison-operators

我刚刚开始使用基本的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循环中的最大值。

1 个答案:

答案 0 :(得分:3)

  

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

输入参数(来自arg)总是字符串,它将被强制转换为for循环中的数字:

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

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