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

标签 go go-build go-packages

<分区>

我有这个目录布局:

/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 集成。

另见 this answer一些其他引用资料以及如何设置目录结构。

关于go - 从单独的包/文件夹导入代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49762727/

相关文章:

在 CGO 中使用 C 结构的 golang 结构

arrays - 我如何在 Go 中找到所有具有特定扩展名的文件,而不考虑深度?

go - 如何防止 `go build`更新模块的最新版本

go - 如何删除我不小心发布到 go.dev 的包?

image - Julia 设置图像渲染被并发破坏

json - 在 Golang 中向嵌套的 json 添加条目

go build 不会将本地更改编译到 main

Go build 不构建自定义库

go - 使用 Go 模块在包中组织本地代码

html - 如何在 Go 中正确下载和安装包?