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 关注
- 286 浏览
添加回答
举报