【发布时间】:2021-11-16 03:27:53
【问题描述】:
我正在尝试一些递归代码,其中我在递归函数的第一次调用之外创建一个字符串,并将该字符串作为参数发送给所述第一次调用。这个字符串在递归算法中被传递了很多次。
在此函数中,字符串使用+= 进行变异。这个函数显然因为它的递归而被调用了很多。我假设对字符串的每次修改都不会无意中影响其他函数,因为 += 应该创建字符串的新实例,但似乎有时它确实会改变它并影响我函数的其他调用。
我做了一些挖掘(上图),发现当对一个函数执行+= 时,有时它会保留它的id,尽管我不知道这是否证实了我的怀疑。
有人知道会发生什么吗?
【问题讨论】: