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

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

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

2 回答

?
小怪獸愛吃肉

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊

不,這并不總是必要的。僅當(dāng)您有特定原因時(shí)才需要將其包裝。以下是您可能需要包裝它的幾個(gè)原因:

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

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

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

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

可能還有幾個(gè)。

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


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

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

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

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

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

int c = numberOfPossibleTraversals(root, rules);

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


查看完整回答
反對 回復(fù) 2023-06-21
  • 2 回答
  • 0 關(guān)注
  • 172 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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