小编Ton*_*ang的帖子

使用指向Golang中结构的指针将方法转换为函数

我读了一些奇怪的代码,它们将一个方法转换为一个函数,该函数的第一个参数是指向该方法结构的指针.

我写了一个例子来演示它:

package main

import "fmt"

type fooS struct{}

func (s *fooS) fooF(fooArg interface{}) {
    fmt.Println("fooF: ", fooArg)
}

type wowS struct {
    callback func(s *fooS, fooArg interface{})
}

func main() {
    wow := new(wowS)
    wow.callback = (*fooS).fooF // strange
    wow.callback(nil, 123)
}
Run Code Online (Sandbox Code Playgroud)

Golang Playground Link

该示例的语法很奇怪,但没有错误.

谁能告诉我这些代码是如何工作的还是给我一份关于它们的官方文件?

谢谢:)

go

2
推荐指数
1
解决办法
1857
查看次数

标签 统计

go ×1