Exit {.en}

出口 {.zh}

::: {.en} Use os.Exit to immediately exit with a given status. :::

::: {.zh}

使用os.Exit立即退出givenstatus。

:::

  1. package main
  2. import "fmt"
  3. import "os"
  4. func main() {

::: {.en} defers will not be run when using os.Exit, so this fmt.Println will never be called. :::

::: {.zh}

defers在使用os.Exit时将不会运行,sothisfmt.Println永远不会被调用。

:::

  1. defer fmt.Println("!")

::: {.en} Exit with status 3. :::

::: {.zh}

退出状态3。

:::

  1. os.Exit(3)
  2. }

::: {.en} Note that unlike e.g. C, Go does not use an integer return value from main to indicate exit status. If you’d like to exit with a non-zero status you should use os.Exit. :::

::: {.zh}

请注意,不像C,Go不使用main中的整数返回值来表示退出状态。如果你想以非零状态退出,你应该使用os.Exit

:::

::: {.en} If you run exit.go using go run, the exit will be picked up by go and printed. :::

::: {.zh}

如果你使用go run运行exit.go,退出将被’go`选中并打印出来。

:::

  1. $ go run exit.go
  2. exit status 3

::: {.en} By building and executing a binary you can see the status in the terminal. :::

::: {.zh}

通过构建和执行二进制文件,您可以在终端中查看状态。

:::

  1. $ go build exit.go
  2. $ ./exit
  3. $ echo $?
  4. 3

::: {.en} Note that the ! from our program never got printed. :::

::: {.zh}

请注意,我们程序中的从未打印过。

:::