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

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

無(wú)法在golang中跳出外循環(huán)

無(wú)法在golang中跳出外循環(huán)

Go
慕哥6287543 2022-06-27 10:59:58
以下是我的函數(shù),我試圖驗(yàn)證 ID 并且無(wú)法從內(nèi)部循環(huán)返回值。func Validate(id int, tn []Node) int {    var value int    for _, j := range tn {        if id == j.ID {            println(id, j.ID)            value = j.ID            println("aa", value)            break        } else {            if j.Children != nil {                ValidateID(id, j.Children)            }        }    }    return value}
查看完整描述

1 回答

?
MMTTMM

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

看起來(lái)您想返回是否在樹(shù)的任何節(jié)點(diǎn)中找到了 ID。您的代碼幾乎就在那里,但您需要檢查遞歸調(diào)用是否找到它。使用return而不是break使代碼更簡(jiǎn)單。


我刪除了這些print語(yǔ)句,我猜它們是出于調(diào)試目的。


我還用 a 替換了返回值bool(原始代碼要么返回 ID 本身,要么返回 0 表示未找到),并刪除了j.Children == nil測(cè)試(代碼為空切片返回 false:


// ValidateID reports whether id exists in a tree of nodes.

func ValidateID(id int, tn []Node) bool {

    for _, j := range tn {

        if id == j.ID || ValidateID(id, j.Children) {

            return true

        }

    }

    return false

}

請(qǐng)注意,如果您想從目標(biāo)節(jié)點(diǎn)實(shí)際返回 bool 以外的內(nèi)容,我會(huì)讓函數(shù)返回兩個(gè)值:您感興趣的值和表示是否找到 ID 的 bool。"Effective Go"不鼓勵(lì)依賴(lài)像 0 這樣的標(biāo)記值。


查看完整回答
反對(duì) 回復(fù) 2022-06-27
  • 1 回答
  • 0 關(guān)注
  • 122 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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