Go за Прикладом: Exit

Скористайтесь os.Exit для негайного виходу з відповідним статусом.

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

Відкладений виклик ( за допомогою defer) ніколи не буде запущено, якщо використовується os.Exit, тобто fmt.Println просто не виконається.

    defer fmt.Println("!")

Завершити з програму з статусом 3.

    os.Exit(3)
}

Напротивагу С/С++, Go не потребує використовувати ціле число, як значення що повертається з функції main (щоб вказати операційні системі з яким статусом завершилась програма). Тобто, якщо ви захочете вийти з ненульовим статусом - ви змушені будете скористатись os.Exit.

Якщо ви запустите exit.go використовуючи go run, то статус виходу буде підібрано go і надруковано.

$ go run exit.go
exit status 3

Якщо ви скомпілюєте та запустите бінарний файл, ви зможете підхопити статус код в терміналі самостійно.

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

Зауважте що ! з нашої програми ніколи не буде надруковано.