尾调用优化是一个编程语言特性。函数递归调用时,会创建一个新的栈帧(stack frame)。栈帧用于存储当前函数调用的参数和局部变量。如果函数递归很多次,解释器或编译器可能会耗尽内存。支持尾调用优化的语言对整个递归调用序列重用同一个的栈帧。像 Python 这样没有尾调用优化的语言通常会限制函数递归的次数(如数千次)