从单独的包/文件夹导入代码



我有这个目录布局:

/baba
biz.go         # package baba
/hello
foo.go         # package main

biz.go 看起来像这样:

package baba
func Foodd(z int) int {
return z + 5
}

foo.go看起来像这样:

package main
import (
"fmt"
"log"
)
func main() {
log.Fatal(Foodd(3))
}

目前无法编译,因为无法识别Foodd。如何在foo.go中导入baba包?

我假设如果我这样编译,它会拉入正确的文件:

go build foo.go

还是我需要在go build命令中包含 baba 包中的文件?(我希望不会)。

您需要导入baba包才能从主包中使用它。这将看起来像这样:

package main
import (
"fmt"
"log"
"github.com/the1mills/myproject/baba"
)
func main() {
log.Fatal(baba.Foodd(3))
}

导入的包由其包名称引用,该名称通常是(但并非总是)导入路径的最后一个元素。

通常,人们会让goimports处理查找正确的导入路径并自动添加它。您选择的编辑器可能具有goimports集成。

另请参阅此答案以获取其他一些参考以及如何设置目录结构。

最新更新