go语言闭包问题

package main

import "fmt"

func test() func() int{
    var a int = 10
    return func() int{
        return a
    }
}


func main(){
    fmt.Printf("%d",test())
}

输出的结果是4771344
为什么是这个奇怪的数字?

阅读 2.1k
1 个回答

你调用 test() 函数返回的是闭包函数啊,所以你输出的是该函数的地址。

正确的用法应该是

fmt.Printf("%d",test()())
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题