Выход (Exit)|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
# Обратите внимание, что `!` из нашей программы
# никогда не был напечатан.