Go by Example: Exit

指定したステータスですぐさま終了するには、 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 run を使って exit.go を実行した場合は、 go によって終了が検知され、画面に表示されます。

$ go run exit.go
exit status 3

バイナリをビルドして実行した場合は、 ターミナルでステータスを確認できます。

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

プログラムから ! が決して表示されないことに注意してください。