gpt4 book ai didi

go - 是否可以从另一个函数到 "return"一个函数?

转载 作者:IT王子 更新时间:2023-10-29 01:43:12 25 4
gpt4 key购买 nike

由于冗长的错误处理语法,我创建了一个函数 check,如下所示,它充当“全局”错误处理程序。如果我想 panic 而不是记录,我只更改 check 函数。问题是现在我想简单地 return 以便其他 go 例程在出现错误时仍然可以运行。所以问题是:我该怎么做?可能吗?

func main() {
for k, v := range foo {
go func() {
err = doSomething()
check("this one failed", err)
}()
}
}

func check(errMsg string, err error) {
if err != nil {
log.Fatalf(errMsg, err)
}
}

但是现在我发现如果有任何错误我需要返回匿名函数而不是退出(log.Fatal)所以我想知道是否可以返回 anyonymou

最佳答案

你可以让你的检查函数返回一个bool:

func checkIfFailed(errMsg string, err error) bool {
if err != nil {
log.Printf(errMsg, err)
return true
}
return false
}

这样,您仍然可以调用您的检查(并在其中进行各种检查),同时从匿名函数提前返回:

err = doSomething()
if checkIfFailed("this one failed", err) {
return
}

关于go - 是否可以从另一个函数到 "return"一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24545613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com