go run main.go undefined? golang main包那点事

最近把个人ss项目作了一下结构调整,一顿重构后,输入go run main.go,编译报错function undefined。额,怎么回事明明把函数定义在main.go上面的文件中啊。以前也遇到过这个问题不过没用深究,下面咱们来讲说go main包那点事。git

golang main包推荐只有一个main.go文件,这样你们就能按照习惯的方式,go run main.go 或 go build main.go来运行编译项目。golang

若是main包下有多个go文件,应该使用go run a.go b.go c.go 或 go run *.go来运行,编译同理。函数

由于mian包里,使用go run main.go,编译器只会加载main.go这个文件,不会加载main包里的其余文件,只有非main包里的文件才会经过依赖去自动加载。因此你须要输入多个文件做为参数。ui

golang推荐项目结构:code

.
├── .gitignore
├── README.md
├── main.go
└── src
    ├── pkg1
    │   └── a.go
    ├── pkg2
    │   └── b.go
    └── pkg3
        └── c.go

若是须要编译为多个程序,能够加入cmd文件夹:cmd

.
├── .gitignore
├── README.md
├── cmd
│   ├── cmd1
│   │   └── main.go
│   └── cmd2
│       └── main.go
└── src
    ├── pkg1
    │   └── a.go
    ├── pkg2
    │   └── b.go
    └── pkg3
        └── c.go
相关文章
相关标签/搜索