我有一个执行某些任务的过程,但根据其输入以两种略有不同的方式执行它。具体来说,它扩展了后缀树中的后缀;如果后缀在一个节点处结束,情况很简单,但是当后缀在叶边缘内结束时,需要做一些额外的工作。我提到这个细节是为了解释为什么我将这两种行为包含在一个函数中(它反映了 Dan Gusfield 对 Ukkonen 后缀树构造算法的描述的“规则 2”:http: //www.stanford.edu/~mjkay/gusfield .pdf)。
无论如何,一旦函数完成了这项工作,调用者需要知道这两种情况中的哪一种被执行了。我认为枚举将是共享此信息的好方法,因为它使案例明确(而不是将案例任意映射到布尔或整数)。
TLDR:要与调用者共享信息,我应该通过引用此过程传递一个枚举还是返回一个枚举?我觉得通过引用传递枚举更好,因为它避免了“具有副作用的函数”,但想知道是否有通常“正确”的方式来做到这一点。或者,这是否真的表明我应该用两个单独的程序替换我的单个程序?