首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Go程序中使用多个文件

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

Stack Overflow用户
提问于 2014-08-29 00:39:51
回答 2查看 148关注 0票数 0

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

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

代码语言:javascript
复制
-test
    -bin
    -pkg
    -src
        -main
            main.go
            test.go

并试图运行go build maingo build main.go test.go,但我始终有一个错误。

test.go只包含以下代码

代码语言:javascript
复制
package main
import "fmt"
func do(b string) {
    fmt.Println(b)
}

我希望能够在do("x")中调用main.go。现在,main.go中的所有内容都是

代码语言:javascript
复制
package main
func main() {
    test.do("x")
}

我不知道该怎么做才能让这件事奏效。许多答案似乎都建议将test.go移到目录"test“中。我希望Go不要求我为我编写的每一段代码创建一个目录,但也许我会“与系统作斗争”。许多答案告诉我到一个网站,告诉我要建立上面的目录结构,并使用go install编译我的二进制文件,但这是行不通的。

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-29 00:45:40

如果test.go位于同一个目录中,则必须位于同一个包中。因此,对于这两个文件,该包都是main,并且位于您只需调用do("x")的同一个包中。

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

代码语言:javascript
复制
export GOPATH="<path to>/test"

go build main
票数 4
EN

Stack Overflow用户

发布于 2014-08-29 00:44:15

只需使用:

代码语言:javascript
复制
do

而不是:

代码语言:javascript
复制
test.do
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25560040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档