我的任务是使用反向抛光表示法并对其进行评估,但我无法理解if语句后的代码块
def evaluate(string)
array = tokens(string)
symbols = [:+,:-,:*,:/]
new_array = []
array.each do |x|
if symbols.include?(x)
b,a = new_array.pop, new_array.pop
new_array << symbol_math(x, a, b)
else
new_array << x
end
end
new_array[0]
end
def symbol_math symbol, a, b
return a+b if symbol == :+
return a-b if symbol == :-
return a*b if symbol == :*
return a.to_f/b if symbol == :/
end
我判断你是否在符号数组中检查它是否是你删除它并将其作为symbol_math的参数。我不明白b,a = new_array.pop, new_array.pop
是如何工作的。< / p>