gpt4 book ai didi

go - 如何访问主包中的函数?

转载 作者:IT王子 更新时间:2023-10-29 01:17:44 27 4
gpt4 key购买 nike

根据设置:

$GOPATH/
github.com/ddavison/project/
subpackage/
lib.go
main.go

lib.go

package subpackage
...
func Hello() {
fmt.Println("hello")
}

main.go

package main
...
func main() {
...
}

func DoSomething() {
fmt.Println("done!")
}

ma​​in.go,我知道我可以调用lib.go的函数

import "github.com/ddavison/project/subpackage"
lib.Hello()

但是我怎样才能反过来,lib.go 调用 main.go 的方法?如何从 lib.go 调用 DoSomething()

最佳答案

Go 的功能是一流的。将命名函数 DoSomething 作为参数传递给 lib 函数。

如果允许任何其他内容引用 main,您就会产生循环依赖。

lib.go

package subpackage
...

type Complete func()

func Hello(complete Complete) {
fmt.Println("hello")
complete()
}

main.go

package main
...
func main() {
subpackage.Hello(DoSomethign)
}

func DoSomething() {
fmt.Println("done!")
}

关于go - 如何访问主包中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29077678/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com