Go 言語の Exit 関数

Beginner

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

はじめに

Exit 実験は、Go 言語の os.Exit 関数を使って指定されたステータスで即座に終了する能力をテストするために設計されています。

終了

この実験で解くべき問題は、os.Exit 関数を使って特定のステータスコードで Go プログラムを終了させることです。

この実験を完了するには、Go プログラミングと os パッケージに関する基本的な知識が必要です。

## `go run` を使って `exit.go` を実行すると、
## 終了は `go` によって拾われて表示されます。
$ go run exit.go
exit status 3

## バイナリをビルドして実行することで、
## 端末でステータスを確認できます。
$ go build exit.go
$./exit
$ echo $?
3

## プログラムからの `!` は表示されませんでしたことに注意してください。

以下に完全なコードがあります:

// `os.Exit` を使って指定されたステータスで即座に終了します。

package main

import (
    "fmt"
    "os"
)

func main() {

    // `os.Exit` を使用する場合、`defer` は実行されません。
    // したがって、この `fmt.Println` は決して呼び出されません。
    defer fmt.Println("!")

    // ステータス 3 で終了します。
    os.Exit(3)
}

// たとえば C 言語とは異なり、Go は `main` からの整数戻り値を使って
// 終了ステータスを示しません。非ゼロのステータスで終了したい場合は、
// `os.Exit` を使用する必要があります。

まとめ

この実験では、特定のステータスコードで Go プログラムを即座に終了させるために os.Exit 関数をどのように使用するかを学びました。他のプログラミング言語とは異なり、Go は main からの整数戻り値を使って終了ステータスを示さないことを忘れないでください。