代码之家  ›  专栏  ›  技术社区  ›  Em Ae

方法在运行时不可见

go
  •  0
  • Em Ae  · 技术社区  · 5 年前

    ❯ 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 ...")
    }
    
    

    随机,开始 ,我得到一个错误 早希 tools 所以我不确定我做错了什么。我必须以不同的方式导入它吗?

    0 回复  |  直到 5 年前
        1
  •  0
  •   Koala Yeung    5 年前

    这个 go run 命令运行整个包或单个文件。如果只指定了一个文件,则不会加载整个文件夹。这就是为什么如果你跑 go run random.go ,它将不会加载 mymethod.go

    如果你只有一个 main() “工具”文件夹中的函数(假定为 package main ),您只需在该文件夹中执行此操作:

    go run .
    

    如果您只需要这两个文件,而不需要其他文件:

    go run random.go mymethod.go