Exit

Exit->종료 #

// `os.Exit`를 이용하여 프로그램을 지정된 status로 즉시 종료할 수 있습니다.

package main

import "fmt"
import "os"

func main() {

	// `defer`는 `os.Exit`를 이용할 때에는 _작동하지 않습니다._
	//  그래서 이 `fmt.Println`은 절대로 호출되지 않을 것입니다.
	defer fmt.Println("!")

	// status 3으로 종료해봅시다.
	os.Exit(3)
}

// C와 같은 다른 언어와는 달리, Go는 main에서 반환된 값으로
//  exit status를 나타내지 않습니다. 만약 0이 아닌 다른 status로
//  종료하고 싶다면 `os.Exit`를 이용해야 합니다.
# 만약 `exit.go`를 `go run`을 이용하여 실행시키면,
#  exit 값을 `go`가 가져가서 출력될 것입니다.
$ go run exit.go
exit status 3

# 바이너리를 빌드하여 실행시키는 경우, 터미널에서 
#  status를 볼 수 있습니다.
$ go build exit.go
$ ./exit
$ echo $?
3

# `!`는 절대로 출력되지 않는다는 것을 기억하세요!