将错误变量初始化为错误指针

问题描述 投票:-4回答:1

试图在单个延迟函数中处理所有错误。但是不能将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")
}

playground

go
1个回答
0
投票

您需要将内存分配给您现在刚刚定义的错误。

var err *errorvar err = new(error)替换err := new(error)以实例化并使此代码正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.