我有一個執行某個任務的過程,但是根據它的輸入以兩種稍微不同的方式執行它。具體來說,它在後綴樹中擴展後綴;如果後綴在節點處結束,則情況很簡單,但是當後綴在葉邊內結束時,需要一些額外的工作。我提到這個細節來解釋爲什麼我將這兩個行爲包含在一個函數中(它反映了Dan Gusfield關於後綴樹構造的Ukkonen算法描述的「規則2」:)。返回枚舉或通過引用傳遞枚舉?
無論如何,一旦函數完成這項工作,調用者需要知道兩個案例中的哪一個被執行。我認爲枚舉將是分享這些信息的好方法,因爲它使得這些案例變得明確(而不是任意將案例映射到布爾或整數)。
TLDR:爲了與調用者共享信息,我應該通過引用該過程來傳遞一個枚舉還是返回一個枚舉?我想通過引用傳遞一個枚舉更好,因爲它避免了'具有副作用的函數',但想知道是否通常有'正確'的方式來做這件事。或者,這是否確實表明我應該用兩個獨立的程序取代我的單一程序?
我寧願返回枚舉 - 它聽起來像算法的結果的一部分。在這種情況下,按引用傳遞似乎有點奇怪。 – 2012-07-19 16:52:34