为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 程序中使用多个文件

在 Go 程序中使用多个文件

Go
心有法竹 2021-08-10 21:14:44
我希望学习如何将 Go 包中的代码从逻辑上拆分为多个文件,并且至关重要的是,在同一包的另一个文件中使用该拆分/单独文件所需的语法。我以这种形式创建了一个 go 项目-test    -bin    -pkg    -src        -main            main.go            test.go并试图运行go build mainand go build main.go test.go,但我总是遇到错误。test.go 仅包含此代码package mainimport "fmt"func do(b string) {    fmt.Println(b)}我希望能够do("x")在 main.go 中调用。现在 main.go 中的所有内容是package mainfunc main() {    test.do("x")}我不知道该怎么做才能让它发挥作用。许多答案似乎建议将 test.go 移动到目录“test”中。我希望 Go 不需要我为我编写的每段代码都创建一个目录,但也许我会“与系统作斗争”。许多答案将我指向一个网站,告诉我制作上述目录结构,并go install用于编译我的二进制文件,但这不起作用。我只想知道如何在 package/y.go 中使用 package/x.go 中的函数,即使它们在同一个包中。必须有一种方法可以做到这一点,否则我将拥有一堆不必要的包或难以理解的整体文件。我知道有很多类似的问题,但是在我的搜索中,我无法在同一个包中的两个相互引用的文件中找到代码的实际示例。
查看完整描述

2 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

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


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


export GOPATH="<path to>/test"


go build main


查看完整回答
反对 回复 2021-08-10
  • 2 回答
  • 0 关注
  • 473 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信