首頁 > 後端開發 > Golang > Go中子函數執行後如何從父函數返回?

Go中子函數執行後如何從父函數返回?

Mary-Kate Olsen
發布: 2024-11-16 00:39:02
原創
241 人瀏覽過

How Can I Return from a Parent Function in Go After a Child Function Executes?

從父函數中的子函數回傳

人們可能會遇到這樣的情況:他們希望在呼叫子函數。在這種情況下,目標是當子函數 apiResponse() 中滿足特定條件時終止父函數 apiEndpoint() 中的執行。

問題

使用提供的程式碼片段:

func apiEndpoint() {
    if false {
        apiResponse("error")
        // Return execution in parent function
        // Skip execution of apiResponse("all good")
    }

    apiResponse("all good")
}

func apiResponse(message string) {
    // Returns message to user via JSON
}
登入後複製

目的是讓apiResponse("error") 終止apiEndpoint() 的執行,以便apiResponse("all good") 不被執行。然而,Go 中的預設行為是函數無法控制其作用域以外的執行流程。

為了達到預期的結果,有幾種方法:

1。使用if-Else語句

如果條件夠簡單,可以使用if-else結構來避免明確的return語句:

func apiEndpoint() {
    if someCondition {
        apiResponse("error")
    } else {
        apiResponse("all good")
    }
}
登入後複製

2.使用值從呼叫者傳回

如果兩個函數都傳回值,您可以使用一行程式碼從呼叫者函數傳回適當的值:

func apiEndpoint() int {
    if someCondition {
        return apiResponse("error")
    }

    return apiResponse("all good")
}

func apiResponse(message string) int {
    return 1 // Return an int
}
登入後複製

注意

雖然恐慌是另一個可能停止執行的異常,但在這種情況下它不被認為是合適的解決方案,應該保留用於特殊情況。

以上是Go中子函數執行後如何從父函數返回?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板