os.Exit を使うと引数に渡したステータスで直ちにプログラムを終了する。
os.Exit
package main
import ( "fmt" "os" )
func main() {
os.Exit を使うと defer は実行 されない 。 そのためこの fmt.Println は呼ばれない。
defer
fmt.Println
defer fmt.Println("!")
ステータス 3 で終了する。
os.Exit(3) }
C などと違って、Go は main 関数が返す整数型の値を使って終了ステータスを表すことはない。 そのため、もしゼロでないステータスを返したければ、os.Exit を使わなければならない。
main
exit.go を go run で実行すると、 プログラム終了は go に補足され、画面に表示される。
exit.go
go run
go
$ go run exit.go exit status 3
バイナリをビルドしてから実行する場合は、ターミナル上でステータスを確認できる。
$ go build exit.go $ ./exit $ echo $? 3
なお、プログラムによって ! が表示されることはない。
!
原著者 Mark McGranaghan | 翻訳者:@spinute | フィードバック | ソースコード | ライセンス