Lua Boolean составной или

Я только начинаю с базового интерпретатора 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?

РЕДАКТИРОВАТЬ: х установлен в качестве одного из входных аргументов. Я уверен, что это число, а не строка; в предыдущих выражениях я использовал его как максимальное значение в цикле for.

1 ответ

Решение

x установлен как один из входных аргументов. Я уверен, что это число, а не строка; в предыдущих выражениях я использовал его как максимальное значение в цикле for.

Входные аргументы (из arg) всегда являются строками, которые будут преобразованы в числа в цикле for:

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

В этом случае, однако, похоже, что вам нужно использовать tonumber(),

Другие вопросы по тегам