duanluan2047 2016-08-20 14:43
浏览 9
已采纳

我可以在main中定义接收方法吗?

I can define a function globally,

func f()int{
    return 0
}

But I can also do in main,

func main(){
    var f=func()int{
        return 0
    }
}

Can I do the same with receiving methods? I can do globally,

type I int
func(i I)f()int{
    return int(i)
}

But can I do this in main too, so like (because this does not work)

func main(){
    type I int
    var f=func(i I)()int{
        return 0
    }
}
  • 写回答

1条回答 默认 最新

  • douxugu5836 2016-08-20 15:35
    关注

    No, not like that,
    but like this working sample code you may still use f:

    package main
    
    import "fmt"
    
    func main() {
        j := I(2)
        fmt.Println(j.Double())
    
        f := j.Double
    
        fmt.Println(f())
    }
    
    type I int
    
    func (i I) Double() int {
        return int(i) * 2
    }
    

    output:

    4
    4
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作