Germany | Finland | Saint Petersburg | Drive

Вычисление выражения, заданного строкой

Опубликовано в QLua

Есть строка "3+5". Можно ли вычислить результат выражения из этой строки?

Поскольку lua-это интерпретируемый язык, то да, можно. Пишем простейшую функцию:

-- Вычисление выражения из строки
-- Возвращает вычисленное значение либо nil при ошибке
function string.calculate(str)
local status,result = pcall(loadstring("return " .. str))
if status then
return result
end
end

 

Пробуем.

string.calculate("3+5")
--> 8
string.calculate("math.max(1,2,3,4)")
--> 4
string.calculate("isConnected()")
--> 1
string.calculate("5 > 3")
--> true
string.calculate("abracadabra")
--> nil
Добавить комментарий


Архив QLua