Go教程

go 的return值在defer前返回,defer延迟执行

本文主要是介绍go 的return值在defer前返回,defer延迟执行,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package main

import "fmt"

var name string= "go"

func TestName() string {
   defer func() {
      name="python"
   }()
   fmt.Println(name)
   return name

}

func main() {

   myname:=TestName() //go
   fmt.Println(name) // python
   fmt.Println(myname) // return go






}




//

go
python
go

 

 

 

func Testdefer() (i int){
   i = 100

   defer func() {
      i += 100
      //fmt.Println(i)
   }()
   return i

}

func test(i int)  func() (i int ){     //闭包
//
   return func() int {
      i+=1000
      return i
   }


}

func main() {
     x:=Testdefer()
     fmt.Println(x)
     f:=test(100)
     fmt.Println(f())
    fmt.Println(f())
   fmt.Println(f())

//

GOROOT=C:\Program Files\Go #gosetup
GOPATH=C:\Users\Administrator\go #gosetup
"C:\Program Files\Go\bin\go.exe" build -o C:\Users\Administrator\AppData\Local\Temp\___1go_build_test17_go.exe D:\awesomeProject\src\test\test17.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\___1go_build_test17_go.exe #gosetup
200
1100
2100
3100

进程 已完成,退出代码为 0












}
这篇关于go 的return值在defer前返回,defer延迟执行的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!