Задача простая.
Есть переменная типа string str = "1+(2*3)".
Нужно из неё получить результат 7.
Есть два способа.
Первый - пишем парсерную функцию eval. Хорошая функция, учитывающая скобки, приоритет операций и т.д. занимает около 1000 строк.
Второй - просто и изящно передаём строку в назначение переменной, например res = 1+(2*3), будет равен 7.
Это пример для JavaScript. Где-то видел аналогичный для LUA, но не могу найти.
Помогите с решением задачки.
Есть переменная типа string str = "1+(2*3)".
Нужно из неё получить результат 7.
Есть два способа.
Первый - пишем парсерную функцию eval. Хорошая функция, учитывающая скобки, приоритет операций и т.д. занимает около 1000 строк.
Второй - просто и изящно передаём строку в назначение переменной, например res = 1+(2*3), будет равен 7.
Код |
---|
function calculateString(str) { return (new Function('return ' + str))(); } |
Помогите с решением задачки.