J'ai un algorithme récursif qui parcourt une chaîne, caractère par caractère, et l'analyse pour créer une structure arborescente. Je veux être capable de garder une trace de l'index des caractères que l'analyseur est actuellement (pour les messages d'erreur tout autant que toute autre chose) mais je ne tiens pas à implémenter quelque chose comme un tuple pour gérer plusieurs types retournés.Comment garder un compte "choses faites" dans un algorithme récursif en Java?
J'ai essayé d'utiliser un type Integer, déclaré en dehors de la méthode et passé dans la méthode récursive, mais parce qu'il est final, les incréments d'appels récursifs sont "oubliés" quand je reviens. (Parce que l'incrémentation de la valeur Integer rend le point de référence de l'objet transmis par un nouvel objet)
Existe-t-il un moyen de faire fonctionner quelque chose qui ne pollue pas mon code?
certes pas une réponse, mais une certaine sympathie: :-) J'ai couru dans une situation similaire il y a deux mois. Comme j'utilisais Common Lisp, je pouvais simplement déclarer mon compteur 'spécial' (c'est-à-dire dynamiquement étendu au lieu de lexicalement), mais je me souviens avoir pensé "Dans à peu près n'importe quelle autre langue cela prendrait plus d'une ligne de code résoudre". – Ken