Go 方法在运行时不可见
我有以下代码结构Go 方法在运行时不可见,go,Go,我有以下代码结构 ❯ tree -L 2 . ├── Dockerfile ├── Makefile ├── README.md ├── cmd │ ├── app ├── coverage.out ├── go.mod ├── go.sum ├── internal │ ├── context │ ├── pubsub │ └── test_helpers ├── pkg │ ├── <service_name> └──
❯ tree -L 2
.
├── Dockerfile
├── Makefile
├── README.md
├── cmd
│ ├── app
├── coverage.out
├── go.mod
├── go.sum
├── internal
│ ├── context
│ ├── pubsub
│ └── test_helpers
├── pkg
│ ├── <service_name>
└── tools
├── random.go
└── mymethod.go
方法SayHi在mymethod.go中定义如下
包干管
进口fmt
//早希评论
func SayHi{
fmt.Printfsaying hi。。。
}
当我运行random.go时,我得到一个错误,SayHi未定义。这两个文件都在同一个包(即工具)下,因此我不确定我做错了什么。我必须以不同的方式导入它吗?go-run命令运行整个包或单个文件。如果只指定了一个文件,则不会加载整个文件夹。这就是为什么如果运行go random.go,它将不会在加载mymethod.go文件
如果“工具”文件夹中只有一个主功能,即程序包主功能,则可以在该文件夹中执行此操作:
跑吧。
如果您只需要这两个文件,而不需要其他文件:
go run random.go mymethod.go
您使用哪个命令来运行它?除非您真的知道自己在做什么,否则绝对不要使用go run来执行go代码。go run是一个加载的footgun。我使用vscode default launch.json来运行它。它正在使用${file}占位符运行代码。是否应将其替换为所有文件?请找到引用文件夹而不是文件的方法。