Go با مثال: خروج

برای خروج فوری با یک وضعیت مشخص، از os.Exit استفاده کنید.

package main
import (
    "fmt"
    "os"
)
func main() {

هنگام استفاده از os.Exit، deferها اجرا _نمی‌شوند_، پس این fmt.Println هرگز صدا زده نمی‌شود.

    defer fmt.Println("!")

با وضعیت 3 خارج می‌شویم.

    os.Exit(3)
}

توجه کنید که برخلاف زبانی مثل C، در Go از مقدار بازگشتی عددی main برای نشان دادن وضعیت خروج استفاده نمی‌شود. اگر می‌خواهید با وضعیت غیرصفر خارج شوید، باید از os.Exit استفاده کنید.

اگر exit.go را با go run اجرا کنید، go وضعیت خروج را دریافت و چاپ می‌کند.

$ go run exit.go
exit status 3

با بیلد و اجرای فایل اجرایی می‌توانید وضعیت خروج را در ترمینال ببینید.

$ go build exit.go
$ ./exit
$ echo $?
3

توجه کنید که ! برنامهٔ ما هرگز چاپ نشد.