【发布时间】:2010-09-07 06:33:40
【问题描述】:
我有一个递归算法,它逐个字符地遍历字符串,并对其进行解析以创建树状结构。我希望能够跟踪解析器当前所在的字符索引(对于错误消息以及其他任何内容),但我并不热衷于实现像元组这样的东西来处理多个返回的类型。
我尝试使用 Integer 类型,在方法外部声明并传递给递归方法,但因为它是最终的,所以当我返回时,递归调用增量被“遗忘”。 (因为Integer值的递增使得传值对象引用指向一个新对象)
有没有办法获得类似于工作而不会污染我的代码的东西?
【问题讨论】:
-
诚然不是一个答案,而是一些同情::-) 几个月前我遇到了类似的情况。由于我使用的是 Common Lisp,我可以简单地将我的计数器声明为“特殊”(即,动态范围而不是词法范围),但我记得当时想“在几乎任何其他语言中,这将需要超过 1 行代码解决”。
标签: java recursion coding-style integer final