亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何從另一個func返回func?

如何從另一個func返回func?

Go
江戶川亂折騰 2021-10-18 10:15:37
我想apiEndpoint()在調用/退出子函數時結束父函數的執行apiResponse()func apiEndpoint() {    if false {        apiResponse("error")        // I want apiResponse() call to return (end execution) in parent func        // so next apiResponse("all good") wont be executed    }    apiResponse("all good")}func apiResponse(message string) {    // returns message to user via JSON}
查看完整描述

2 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

函數或方法無法從調用它的地方控制執行(控制流)。你甚至不能保證它是從你的函數中調用的,例如,它可能被調用來初始化一個全局變量。


話雖如此,調用者有責任用return語句明確地結束執行并返回。


如果示例和您的一樣簡單,您可以return使用if-else以下語句來避免該語句:


func apiEndpoint() {

    if someCondition {

        apiResponse("error")

    } else {

        apiResponse("all good")

    }

}

此外,如果函數具有返回值并且apiResponse()將返回一個值作為調用者的返回值,您可以return在一行中執行,例如


func apiEndpoint() int {

    if someCondition {

        return apiResponse("error")

    }


    return apiResponse("all good")

}


func apiResponse(message string) int {

    return 1 // Return an int

}

筆記:


只是為了完整性,但不是您的情況的解決方案:如果被調用函數會panic(),調用者函數中的執行將停止,并且恐慌序列將在調用層次結構中上升(在運行defer函數之后,如果它們不調用recover()) . 恐慌恢復是為其他目的而設計的,而不是作為被調用函數停止調用函數執行的一種手段。


查看完整回答
反對 回復 2021-10-18
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

使用return語句:


func apiEndpoint() {

    if false {

        apiResponse("error")

        return

    }


    apiResponse("all good")

}


func apiResponse(message string) {

    // returns message to user via JSON

}


查看完整回答
反對 回復 2021-10-18
  • 2 回答
  • 0 關注
  • 315 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號