1. 程式人生 > >golang:return和os.Exit有什麼區別,return之後又執行了什麼呢?

golang:return和os.Exit有什麼區別,return之後又執行了什麼呢?

err := http.ListenAndServe(":"+svcPort, nil)
if err != nil {
     log.Println("http.ListenAndServe error = [" + err.Error() + "]")
     //return
     os.Exit(1)

}

今兒遇到的一個報錯問題,引發了本問題的思考:

        使用return,http服務的埠被佔用,log.Println錯誤之後,其他模組還報了一個index out of range錯誤,但是換成os.Exit(1)之後就沒有index out of range的報錯。用os.Exit(1)列印錯誤資訊之後程式直接退出,當然不會有index out of range,但是用return就有,不禁在想return之後又執行了什麼呢,main()裡面的return不也是能夠退出嗎?