Exit

Exit #

// Usa `os.Exit` per terminare immediatamente l'esecuzione
// di un programma con un determinato [valore di uscita](https://it.wikipedia.org/wiki/Valore_di_uscita).

package main

import "fmt"
import "os"

func main() {

    // I `defer` _non_ saranno eseguiti con `os.Exit`,
    // quindi questo `fmt.Println` non verrà mai eseguito.
    defer fmt.Println("!")

    // Terminiamo il programma col valore di uscita 3.
    os.Exit(3)
}

// Nota che a differenza di C e simili, Go non usa un
// valore restituito da `main()` per indicare il valore
// di uscita. Se vuoi terminare il programma con un valore
// non-zero, usa `os.Exit`.
# Se esegui `exit.go` usando `go run`, il valore di uscita
# verrà intercettato da Go e stampato.
$ go run exit.go
exit status 3

# Compilando e eseguendo il programma potrai anche vedere
# il valore restituito nel terminale.
$ go build exit.go
$ ./exit
$ echo $?
3

# Nota che il `!` del nostro programma non è mai stato
# stampato.