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

Work in Progress / Сайт в процесі розробки

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

package main
import "fmt"
import "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

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