Pointers Go:是否可以返回指向函数的指针

Pointers Go:是否可以返回指向函数的指针,pointers,go,Pointers,Go,对于以下代码: package main import "fmt" type intFunc func(int) int var t = func() intFunc { a := func(b int) int { return b} return a } func main() { fmt.Println(t()(2)) } 是否有方法将指针返回到函数而不是直接返回函数?(类似于返回&a) 操场在这里:是的,只要正确转换类型:

对于以下代码:

package main

import "fmt"

type intFunc func(int) int

var t = func() intFunc {
        a := func(b int) int { return b}
        return a
    }

func main() {
    fmt.Println(t()(2))
   }
是否有方法将指针返回到函数而不是直接返回函数?(类似于
返回&a


操场在这里:

是的,只要正确转换类型:

并且没有指定的类型:


访问其他软件包:


是的,但是你为什么需要/想要呢?函数是第一类,即使我应该检查程序集,它们的行为可能更像引用类型而不是数据。@EliasVanOotegem:您可能希望能够将函数指针作为要设置的参数传递。这与您需要指向指针的指针时的情况类似。@JimB:Fair-ough:在指针参数上设置值。但是go有多个返回值,我几乎没有在参数上设置值,因为如果我真的想/需要,我可以只返回2或3个值。OP特别要求返回一个指向函数的指针
type intFunc func(int) int

var t = func() *intFunc {
    a := intFunc(func(b int) int { return b })
    return &a
}

func main() {
    fmt.Println((*t())(2))
}
var t = func() *func(int) int {
    a := func(b int) int { return b }
    return &a
}

func main() {
    fmt.Println((*t())(2))
}
package main

import "fmt"

var f = fmt.Println
var p2f = &f

func main() {
    (*p2f)("it works")
}