Skip to main content

return exit goexit

区别

  • return 返回当前函数
  • exit 退出当前进程(退出整个程序)
  • GOEXIT 提前退出当前go程

测试

return

package main

import (
"fmt"
"time"
)

func main() {
go func() {
func(){
fmt.Println("这是子go程内部的函数")
return
}()
fmt.Println("子go程结束!") //这句会打印吗?
}()

fmt.Println("这是主go程")
time.Sleep(time.Second*5)
fmt.Println("over!")
}

exit

package main

import (
"fmt"
"os"
"time"
)

func main() {
go func() {
func(){
fmt.Println("这是子go程内部的函数")
os.Exit(-1)
}()
fmt.Println("子go程结束!") //这句会打印吗?
}()

fmt.Println("这是主go程")
time.Sleep(time.Second*5)
fmt.Println("over!")
}

goexit

package main

import (
"fmt"
"runtime"
"time"
)

func main() {
go func() {
func(){
fmt.Println("这是子go程内部的函数")
runtime.Goexit()
}()
fmt.Println("子go程结束!") ////这句会打印吗?
}()

fmt.Println("这是主go程")
time.Sleep(time.Second*5)
fmt.Println("over!")
}