网上一个例子:
通过一个简单的例子来说明,首先是例子的结构,我们仅仅用到了这两个文件:ciconnector.go和rockettest.go
例子结构
原本设定的方法是这两个包里的函数互相调用,那么我们通过代码来看下怎么解决相应的问题。
首先是rockettest.go,这里调用了ciconnector.go中的Test方法,代码如下
package main
import (
"fmt"
"citest"
)
func main() {
str := "hello world"
citest.Test(str, rocketfunction)
}
func rocketfunction(str string) {
fmt.Println(str)
}
这里我们将函数名称作为参数传递给ciconnector.go的Test函数中
接下来我们看下ciconnector.go的代码
package citest
import (
"fmt"
"reflect"
"strconv"
"unsafe"
)
type Callback func(str string)
func Test(str string, callback Callback) {
//poin