Go в примерах: Выход (Exit)

Используйте os.Exit для немедленного выхода с полученныем статусом.

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

defer не будет запускаться при использовании os.Exit, поэтому этот 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

Обратите внимание, что ! из нашей программы никогда не был напечатан.