当我有一个代码通过有限状态任意多次转换时,如下例所示,
def a
...
case some_condition
when :foo then a
when :bar then b
else c
end
end
def b
...
case some_other_condition
when :baz then a
when :bang then b
else c
end
end
def c
...
case still_another_condition
when :zap then a
when :boom then b
else c
end
end
a
我认为每次转换到新状态时调用堆栈都会增长,这会导致性能问题。有没有办法避免调用堆栈的任意增长?尾递归优化与此有关吗?