试图在单个延迟函数中处理所有错误。但是不能将err分配为错误的指针吗?因为它给了我无效的内存地址错误
package main
import (
"fmt"
"errors"
)
func main() {
var err *error
defer func(err *error) {
if *err != nil {
fmt.Println("hi")
} else {
fmt.Println("oh")
}
}(err)
*err = errors.New("EMPTY_BODY")
}
您需要将内存分配给您现在刚刚定义的错误。
用var err *error
或var err = new(error)
替换err := new(error)
以实例化并使此代码正常工作。