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

在不同目录但在同一目录下找不到函数

在不同目录但在同一目录下找不到函数

Go
尚方宝剑之说 2022-05-23 15:52:35
我只有一个包main,但我正在构建多个二进制文件:--cmd   --program1      --main.go   --program2     --main.go--xxx.go--yyy.go--zzz.go我想在xxx.goin 中调用函数program1/main.go。编译器说undeclared name:。我认为我不应该导入该函数,因为它们都在同一个包下main。
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

做你想做的事,你需要把文件 xxx.go、yyy.go 和 zzz.go 放到一个内部包中。


这是您应该拥有的目录布局:


--cmd

   --program1 

     --main.go

   --program2

     --main.go

--internal

   --shared

      --xxx.go

      --yyy.go

      --zzz.go

在文件 xxx.go、yyy.go 和 zzz.go 中,您应该package shared在文件的开头有。


在文件 main.go 中,您应该有import "../../internal/shared". 如果您有一个带有完全限定模块名称的 go.mod 文件(例如 github.com/me/project),那么您可以拥有import "github.com/me/project/internal/shared".


一旦你有了这个,你就可以调用共享包的导出函数,例如从 xxx.go 文件,从程序的主文件。请注意,当函数名称的第一个字母是大写字母时,会导出函数。


查看完整回答
反对 回复 2022-05-23
  • 1 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

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