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.2k
1 个回答

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

正确的用法应该是

fmt.Printf("%d",test()())
推荐问题