dqc19941228 2017-02-27 17:30
浏览 6
已采纳

转到:是否可以将指针返回到函数

For the following code:

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))
   }

Is there a way to return the pointer to the function instead of the function directly? (something like return &a)?

The playground is here: https://play.golang.org/p/IobCtRjVVX

  • 写回答

1条回答 默认 最新

  • douhanzhen8927 2017-02-27 17:52
    关注

    Yes, as long as you convert the types correctly:

    https://play.golang.org/p/3R5pPqr_nW

    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))
    }
    

    And without the named type:

    https://play.golang.org/p/-5fiMBa7e_

    var t = func() *func(int) int {
        a := func(b int) int { return b }
        return &a
    }
    
    func main() {
        fmt.Println((*t())(2))
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 OpenGL渲染效率
  • ¥60 关于网络前后端:丢包攻击、漏洞后门、渗透这些
  • ¥30 有关于html的制作个人网页
  • ¥15 stm32 lvgl+DMA,屏幕显示不全有条纹
  • ¥15 用java,swing,mysql实现模拟ATM机系统
  • ¥15 HTML5+CSS3题
  • ¥30 使用php如何制作一个国博门票抢票系统?(相关搜索:手机号|小程序)
  • ¥15 关于#数据库#的问题:每次实验都是系统直接导出数据,但是实验过程前会修改被实验件的结构类型,软件版本(如第一次实验为结构A,A01版本软件,A01版本软件)(相关搜索:数据类型)
  • ¥15 群晖docker无法连接代理服务器
  • ¥20 VBA将EXCEL数据写入JSON,中文不显示