使用 os.Exit 立即退出并返回指定状态码。
os.Exit
package main
import ( "fmt" "os" )
func main() {
使用 os.Exit 时,defer 不会 被执行,因此这个 fmt.Println 永远不会被调用。
defer
fmt.Println
defer fmt.Println("!")
退出并返回状态码 3。
os.Exit(3) }
注意,与 C 语言不同,Go 语言不使用 main 函数的整数返回值来表示退出状态码。如果你想要退出并返回非零状态码,你应该使用 os.Exit。
main
如果你使用 go run 命令运行 exit.go 文件,go 会捕获退出状态码并打印出来。
go run
exit.go
go
$ go run exit.go exit status 3
通过构建并执行二进制文件,你可以在终端中看到退出状态码。
$ go build exit.go $ ./exit $ echo $? 3
注意,我们程序中的 ! 永远没有被打印出来。
!
by Mark McGranaghan 和 Eli Bendersky | 源代码 | 许可证