Golang 在defer函数中获取return的返回值
在工作中用到在defer中根据return的error来进行业务逻辑处理。
注意事项:
1.声明err必须在defer函数之前。
2. defer函数传参必须使用引用传递,否则无效。
代码如下:
func testFun() error {
var err error
defer func(err *error) {
fmt.Println(err)
}(&err)
num, err := strconv.Atoi("10")
fmt.Println(num)
num, err = strconv.Atoi("200")
fmt.Println(num)
num, err = strconv.Atoi("300")
fmt.Println(num)
return err
}