指定したステータスですぐさま終了するには、 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
go run を使って exit.go を実行した場合は、 go によって終了が検知され、画面に表示されます。
go run
exit.go
go
$ go run exit.go exit status 3
バイナリをビルドして実行した場合は、 ターミナルでステータスを確認できます。
$ go build exit.go $ ./exit $ echo $? 3
プログラムから ! が決して表示されないことに注意してください。
!
by Mark McGranaghan and Eli Bendersky (translated by @oohira) | feedback | license