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()) . 恐慌恢復是為其他目的而設計的,而不是作為被調用函數停止調用函數執行的一種手段。

TA貢獻1853條經驗 獲得超9個贊
使用return語句:
func apiEndpoint() {
if false {
apiResponse("error")
return
}
apiResponse("all good")
}
func apiResponse(message string) {
// returns message to user via JSON
}
- 2 回答
- 0 關注
- 315 瀏覽
添加回答
舉報