尝试着手研究 Golang 中的包。
这是我的工作空间
/bin
/pkg
/src
/github.com
/esbenp
/testrepo
/subpackage
somefuncs.go
main.go
main.go
package main
import "github.com/esbenp/testrepo/subpackage"
func main() {
Somefunc()
}
somefuncs.go
package subpackage
import "fmt"
func Somefunc() {
fmt.Printf("yo")
}
我的印象是,由于 Somefunc
以大写字母开头,因此它会被导出以用于导入它的其他文件。我在控制台中得到的输出是。
main.go:4: imported and not used: "github.com/esbenp/testrepo/subpackage"
main.go:8: undefined: Somefunc
有人能指出我正确的方向吗?
最佳答案
您必须在函数前加上属于的包的名称:subpackage.Somefunc()
。
如果你有多个同名的子包,你必须在导入它们时给它们取别名,否则会发生冲突:
import (
xapi "x/xx/xxx/api"
yapi "y/yy/yyy/api"
)
关于Go 子包函数未正确导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37521389/