从单独的包/文件夹

时间:2018-04-10 20:55:43

标签: 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。如何在baba中导入foo.go包?

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

go build foo.go

或者我是否需要在go build命令中将文件包含在baba包中? (我希望不会)。

1 个答案:

答案 0 :(得分:1)

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

package main

import (
    "fmt"
    "log"

    "github.com/the1mills/myproject/baba"
)

func main() {
    log.Fatal(baba.Foodd(3))
}

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

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

另请参阅this answer以获取其他一些参考资料以及如何设置目录结构。