第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

包裝遞歸函數(shù)總是一個好的做法嗎?

包裝遞歸函數(shù)總是一個好的做法嗎?

蠱毒傳說 2023-06-21 13:56:36
我正在使用遞歸函數(shù)來計算從一個節(jié)點開始到另一個給定的一組規(guī)則(例如:最小/最大/確切的停止次數(shù))的圖表中可能的遍歷次數(shù)。我想知道調(diào)用一個調(diào)用遞歸函數(shù)的包裝函數(shù)而不是直接調(diào)用它是否是一個好習慣。大多數(shù)時候我看到人們使用包裝函數(shù)。只是想知道為什么以及有什么優(yōu)缺點以及在什么情況下我們必須包裝它?
查看完整描述

2 回答

?
小怪獸愛吃肉

TA貢獻1852條經(jīng)驗 獲得超1個贊

不,這并不總是必要的。僅當您有特定原因時才需要將其包裝。以下是您可能需要包裝它的幾個原因:

  • 如果它傳遞給自己的參數(shù)與它在初始調(diào)用中收到的參數(shù)不同,無論出于何種原因

    • 也許遞歸參數(shù)很復雜,調(diào)用者很難為它們提供適當?shù)某跏贾?/p>

    • 也許初始參數(shù)與遞歸參數(shù)明顯不同

  • 如果您需要起始位置(例如,包裝器)具有與遞歸方法本身不同的訪問級別。

可能還有幾個。

但許多遞歸方法不需要包裝。例如,帶有謂詞的經(jīng)典深度優(yōu)先節(jié)點遍歷方法在遞歸期間與初始調(diào)用期間不需要任何特殊傳遞,因此無需包裝它。


查看完整回答
反對 回復 2023-06-21
?
千萬里不及你

TA貢獻1784條經(jīng)驗 獲得超9個贊

遞歸函數(shù)通常需要一個參數(shù)來表示先前調(diào)用的累積結(jié)果。問題域中的一個假設(shè)示例是

public int numberOfPossibleTraversals(Node node, List<Rule> rules) { ...

所以第一個 arg 在每個遞歸調(diào)用中被修改。您使用這樣的起始值開始調(diào)用鏈

int c = numberOfPossibleTraversals(root, rules);

有時(取決于具體實現(xiàn))為累積參數(shù)建立初始值可能需要一些邏輯/處理。這就是“包裝器”方法可能發(fā)揮作用的地方。例如,圖本身可能有這樣一個包裝函數(shù),它為遞歸函數(shù)構(gòu)建參數(shù)


查看完整回答
反對 回復 2023-06-21
  • 2 回答
  • 0 關(guān)注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號