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
相關文章
相關標籤/搜索