• 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













    }
  • 相关阅读:
    博客诞生感言~
    java 字符串锁
    oracle三种表连接方式
    两张超级大表join优化
    docker安装配置gitlab详细过程
    docker安装应用
    docker安装教程-centos
    JVM参数调优
    java向word中插入Excel附件
    application.properties参数详解
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/15911384.html
Copyright © 2020-2023  润新知