我需要defer使用C库来释放手动创建的分配,但我也需要os.Exit在某些时候使用非 0 状态。棘手的部分是os.Exit跳过任何延迟指令:
package main
import "fmt"
import "os"
func main() {
// `defer`s will _not_ be run when using `os.Exit`, so
// this `fmt.Println` will never be called.
defer fmt.Println("!")
// sometimes ones might use defer to do critical operations
// like close a database, remove a lock or free memory
// Exit with status code.
os.Exit(3)
}
游乐场:http : //play.golang.org/p/CDiAh9SXRM从https://gobyexample.com/exit窃取
那么如何退出一个遵循声明defer调用的 go 程序呢?有什么替代方法os.Exit吗?
郎朗坤
白衣染霜花
相关分类