Введение
Экспериментальный раздел Exit предназначен для проверки ваших способностей использовать функцию os.Exit в Go для немедленного выхода с заданным статусом.
Exit
Задача, которую необходимо решить в этом экспериментальном разделе, — это выйти из программы на Go с определенным кодом статуса с использованием функции os.Exit.
Для завершения этого экспериментального раздела вам понадобится базовое понимание программирования на Go и пакета os.
## Если вы запустите `exit.go` с использованием `go run`,
## выход будет перехвачен `go` и выведен.
$ go run exit.go
exit status 3
## Сбором и выполнением бинарника вы можете увидеть
## статус в терминале.
$ go build exit.go
$./exit
$ echo $?
3
## Обратите внимание, что `!` из нашей программы
## никогда не был напечатан.
Ниже представлен полный код:
// Используйте `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`.
Резюме
В этом экспериментальном разделе вы узнали, как использовать функцию os.Exit для немедленного выхода из программы на Go с определенным кодом статуса. Помните, что, в отличие от других языков программирования, Go не использует целочисленное возвращаемое значение из main, чтобы указать статус выхода.