如何在延迟调用

时间:2016-05-18 16:35:22

标签: go

示例代码:

package main

import (
    "errors"
    "fmt"
)

func main() {
    err := errors.New("error 1")
    defer fmt.Println(err)

    err = errors.New("error 2")
}

在这种情况下,我希望fmt.Println打印出错误2。

1 个答案:

答案 0 :(得分:9)

设置延迟时已经定义了错误,所以你想要做的就是将它包装在如下的函数中。希望这会有所帮助。

package main

import (
    "errors"
    "fmt"
)

func main() {
    err := errors.New("error 1")

    defer func() {
      fmt.Println(err)
    }()

    err = errors.New("error 2")
}