17
如何從main
返回退出代碼,就像我在C中一樣? 上下文:我檢查是否有單個命令行參數,如果參數數量或參數無效,我將打印使用情況並返回錯誤狀態代碼。如何從Go中的func main返回?
如何從main
返回退出代碼,就像我在C中一樣? 上下文:我檢查是否有單個命令行參數,如果參數數量或參數無效,我將打印使用情況並返回錯誤狀態代碼。如何從Go中的func main返回?
Go使用Exit函數。只需通過狀態代碼作爲參數,你就完成:)
正確的答案是由馬特喬伊納的鏈接。基本上是以下片段。一個人必須保證代碼的那安息呢不調用os.Exit()的任何地方,像flag.ExitOnError,log.Fatalf()等
func main() { os.Exit(mainReturnWithCode()) }
func mainReturnWithCode() int {
// do stuff, defer functions, etc.
return exitcode // a suitable exit code
}
這可能在許多情況下,但不是所有的工作:當你只是os.Exit()時,刷新記錄器/關閉文件的事情不會發生。延期不運行。 – Julian 2015-03-05 11:47:47
你可以這樣做https://github.com/anacrolix/torrent/blob/master/cmd/torrentfs/main.go#L78 – 2016-08-14 04:53:04