Exit
#
// Usa-se o `os.Exit` para, imediatamente, sair do programa
// com um determinado status.
package main
import (
"fmt"
"os"
)
func main() {
// `defer` NÃO serão executados quando utilizado `os.Exit`,
// então este `fmt.Println` nunca será chamado.
defer fmt.Println("!")
// Exit com status 3.
os.Exit(3)
}
// Note que diferentemente de C, por exemplo, Go não
// utiliza um inteiro como valor de retorno de main,
// para indicar status de saída. Se a intenção for sair
// de um programa com status não-zero (sem sucesso),
// `os.Exit` deve ser usado.
# Ao executar `exit.go` usando `go run`, a saída
# será capturada pelo Go e então impressa.
$ go run exit.go
exit status 3
# Ao construir e executar um binário, é possível
# visualizar o status no terminal.
$ go build exit.go
$ ./exit
$ echo $?
3
# Note que o `!` do programa nunca foi exibido.