gpt4 book ai didi

go - 方法在运行时不可见

转载 作者:行者123 更新时间:2023-12-01 22:41:12 27 4
gpt4 key购买 nike

我有以下代码结构

❯ 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
这是 random.go文件的代码

package main

func main() {
SayHi()
}
像这样在 SayHi中定义了 mymethod.go方法
package main

import "fmt"

// SayHi comment
func SayHi() {
fmt.Printf("saying hi ...")
}

当我运行 random.go时,出现错误消息 SayHi未定义。这两个文件都在同一个包中,即 tools,因此我不确定自己在做什么错。我必须以其他方式导入吗?

最佳答案

go run命令运行整个软件包或单个文件。如果仅指定一个文件,则不会加载整个文件夹。这就是为什么如果您运行go run random.go,它将不会在上加载mymethod.go文件的原因。
如果您在“工具”文件夹中只有一个main()函数(假定为package main),则可以在该文件夹中简单地执行此操作:

go run .
如果您只需要2个文件,而不需要其他文件:
go run random.go mymethod.go

关于go - 方法在运行时不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63866579/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com