返回子函數的控制權
從父函數呼叫子函數時,通常在子函數之後在父函數中繼續執行函數返回。然而,在某些情況下,我們可能希望根據子函數呼叫的結果來結束父函數的執行。
考慮以下範例:
func apiEndpoint() { if false { apiResponse("error") // Call child function // Expect to end execution after apiResponse() call } apiResponse("all good") } func apiResponse(message string) { // Returns message to user via JSON }
在此範例中,如果呼叫 apiResponse 函數時出現「錯誤」訊息,我們希望 apiEndpoint 函數結束其執行。然而,程式碼本身並沒有達到這個目標。
子函數的限制
這裡的關鍵限制是子函數無法控制其子函數的執行父函數。父函數決定其自己的執行流程。
替代解決方案
還有其他方法可以實現所需的行為:
func apiEndpoint() { if false { apiResponse("error") } else { apiResponse("all good") } }
func apiEndpoint() string { if false { return apiResponse("error") } return apiResponse("all good") } func apiResponse(message string) string { return message }
以上是子函數如何影響父函數的執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!