Import 在Go程序中使用多个文件

Import 在Go程序中使用多个文件,import,go,package,Import,Go,Package,我希望学习如何在逻辑上将Go包中的代码拆分为多个文件,最重要的是,学习在同一包的另一个文件中使用拆分/分离文件所需的语法 我已经以这种形式创建了一个go项目 -test -bin -pkg -src -main main.go test.go 并试图运行go build main和go build main.go test.go,但我总是遇到错误 test.go仅包含此代码 package main imp

我希望学习如何在逻辑上将Go包中的代码拆分为多个文件,最重要的是,学习在同一包的另一个文件中使用拆分/分离文件所需的语法

我已经以这种形式创建了一个go项目

-test
    -bin
    -pkg
    -src
        -main
            main.go
            test.go
并试图运行
go build main
go build main.go test.go
,但我总是遇到错误

test.go仅包含此代码

package main
import "fmt"
func do(b string) {
    fmt.Println(b)
}
我希望能够在main.go中调用
do(“x”)
。 现在所有的一切都在主。开始

package main
func main() {
    test.do("x")
}
我不知道该怎么做才能让它发挥作用。许多答案似乎建议移动test.go目录“test”。我希望Go不需要我为我写的每一段代码创建一个目录,但也许我会“与系统抗争”。许多答案都指向一个网站,告诉我制作上述目录结构,并使用
go install
编译二进制文件,但这不起作用

我只想知道如何使用package/x.go-inside-package/y.go中的函数,即使它们在同一个包中。必须有办法做到这一点,否则我将有一堆不必要的包或难以理解的单片文件


我知道有许多类似的问题,但在我的搜索中,我没有在同一个包中的两个文件中找到相互引用的代码的实际示例。

只是
do
,而不是
test.do

(正文必须至少有30个字符;为了简洁起见,该死的我天生的天赋!)

只要
do
,而不是
test.do

(正文必须至少包含30个字符;为了简洁起见,我的天赋真该死!)

测试。如果go
位于同一目录中,则必须位于同一个包中。因此,对于这两个文件,包都是
main
,并且位于同一个包中,您可以调用
do(“x”)

此外,您可以像这样构建整个包,而无需指定单个文件

export GOPATH="<path to>/test"

go build main
export GOPATH=“/test”
去建造主管道

test.go如果在同一目录中,则必须在同一个包中。因此,对于这两个文件,包都是
main
,并且位于同一个包中,您可以调用
do(“x”)

此外,您可以像这样构建整个包,而无需指定单个文件

export GOPATH="<path to>/test"

go build main
export GOPATH=“/test”
去建造主管道

您也可以运行“go build”,无需指定文件。您也可以运行“go build”,无需指定文件。获取此信息非常困难。我不确定这是否存在于任何官方文档和/或教程中,但我找不到它。非常感谢。获得这一信息非常困难。我不确定这是否存在于任何官方文档和/或教程中,但我找不到它。非常感谢。