Lua - если оператор с двумя условиями на одну и ту же переменную? - PullRequest
10 голосов
/ 24 января 2012

Как установить значение нижней и верхней границы для переменной в операторе if на языке программирования lua?Мне нужно что-то вроде псевдокода ниже.

if ("100000" >= my_variable <= "80000") then
     do stuff...
end

Я пробовал разные форматы, но мое приложение продолжает падать.

Обновление:

Ввсем, кто сомневается в синтаксисе lua, я бы порекомендовал проверить документацию здесь и держать ее под рукой.Это будет полезно во время обучения.

1 Ответ

20 голосов
/ 24 января 2012

Вам следует преобразовать вашу строку в число, если вы точно знаете, что это должно быть число, и если для этого нет причины быть строкой.

Вот как сделать сравнение для диапазона:

myVariable = tonumber(myVariable)

if (100000 >= myVariable and myVariable >= 80000) then
    display.remove(myImage)
end

Обратите внимание на and. Большинство языков программирования не расширяют форму x < y < z до x < y AND y < z автоматически, поэтому вы должны явно использовать логический and. Это связано с тем, что одна сторона вычисляется раньше другой, поэтому в порядке слева направо она переходит от x < y < z до true < z, что является ошибкой, тогда как в явном методе оно переходит от x < y AND y < z к true AND y < z до true AND true, до true.

...