Функция выхода в Go

Beginner

This tutorial is from open-source community. Access the source code

Введение

Экспериментальный раздел 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, чтобы указать статус выхода.