Sortie

Sortie #

// On utilise `os.Exit` pour quitter immédiatement avec
// un status donné.

package main

import "fmt"
import "os"

func main() {

    // Les `defer`s ne seront  _pas_ exécuté lorsque l'on
    // utilise `os.Exit`, donc ce `fmt.Println` ne sera
    // jamais appelé.
    defer fmt.Println("!")

    // On quitte avec un statut 3.
    // Exit with status 3.
    os.Exit(3)
}

// Contrairement au C par exemple, Go n'utilise pas un
// entier comme valeur de retour de main pour indiquer
// le statut de sortie.
// Si vous voulez indiquer une valeur de sortie non-nulle
// il faut utiliser `os.Exit`.
# Si vous lancez `exit.go` en utilisant `go run`, le code
# de status sera récupéré et affiché par `go`.
$ go run exit.go
exit status 3

# En compilant et en exécutant le binaire, vous pouvez 
# voir le statut dans le terminal.
$ go build exit.go
$ ./exit
$ echo $?
3

# Notez que le `!` de notre programme n'a jamais été 
# affiché.