いくつかのタスクを実行するプロシージャがありますが、入力に応じて2つのわずかに異なる方法で実行します。具体的には、接尾辞ツリーの接尾辞を拡張します。接尾辞がノードで終了する場合、ケースは単純ですが、接尾辞がリーフエッジ内で終了する場合は、追加の作業が必要です。この詳細に言及して、これら2つの動作を単一の関数に含めた理由を説明します(これは、Dan Gusfieldによる接尾辞木構築のUkkonenアルゴリズムの説明の「ルール2」を反映しています:http://www.stanford.edu/~mjkay/gusfield .pdf)。
とにかく、関数がこの作業を完了すると、呼び出し元は2つのケースのどちらが実行されたかを知る必要があります。列挙型は、ケースを明示的にするため(ケースをboolsまたはintに任意にマッピングするのではなく)、この情報を共有するための良い方法だと思いました。
TLDR:発信者と情報を共有するには、この手順を参照して列挙型を渡すか、列挙型を返す必要がありますか?列挙型を参照で渡す方が「副作用のある関数」を回避するので良いと思いますが、これを行うための一般的に「正しい」方法があるかどうかを知りたいと思います。または、代わりに、これは、単一の手順を2つの別々の手順に置き換える必要があることを本当に示唆していますか?