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

时间:2016-08-20 14:43:09

标签: go

我可以全局定义一个函数,

func f()int{
    return 0
}

但我也可以做主,

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

接收方法可以这样做吗?我可以在全球范围内做,

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

但是我也可以在main中这样做,因此(因为这不起作用)

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

1 个答案:

答案 0 :(得分:1)

不,不是那样,
但是就像这个工作示例代码一样,您仍然可以使用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
}

输出:

4
4