杜龙少(sdvdxl)

go中main

Word count: 741 / Reading time: 3 min
2016/03/13 Share

想必很多朋友在入门的时候都是拿main开始而不是test我也喜欢这样我想可能是main比较为人熟知的用法吧testgo中也是非常友好的不需要依赖其他库就可方便使用既然都偏向于main方法的开始和入门那么这个博文就说一下go语言main相关的事情
原本只打算写一下main包的拆分和运行方式突然想到还有其他一些注意地方那么就一并记录一下其他的如果使用过程中遇到了再进行记录
以下示例都是在GOPATH下进行

main函数定义

想要作为程序的运行入口那么这个函数必须明明为main同时要放到mainmain函数声明极其简单如下

1
2
3
func main(){
//...
}

这样就声明并定义好了程序的运行的入口函数不需要其他额外的参数和返回值加上包的声明完整的main文件就如下格式

1
2
3
package main
func main() {
}

另外main文件名字可以随意命名只需要后缀是.go就可以了a.go, main.go, server.go等都是可以的

main 的运行

要运行main文件go提供了2中方式

  1. go run main.go 其中main.go 就是要运行的main函数所在的文件
  2. go build命令文件名可以省略也可以加上 还可以用用参数 -o 指定编译后的文件go build -o main.exe main.go 就是把main.go文件编译成main.exe可执行文件然后直接执行main.exe就可以运行了

main 包文件内容的拆分

假如觉得一个main文件中放太多东西有点杂乱那么可以把main函数和其他内容拆开放到不同的文件中这里指的都是main这个包中文件名字随意比如我们有个sum函数那么可以把它放到math.go这个main包的文件中然后main函数独立在main.go文件中main方法可以直接调用main相同名字的包的函数方法或者变量那么如何执行呢当然就可以用上述的方法运行但是如果用go run main.go这种方式那么可能遇到一个问题找不到sum这个函数因为run的只是main.go 这一个文件没有加载其他文件的内容自然就找不到sum这个函数了那么加载sum这个函数内容自然就可以了对应执行方式就变成了go run main.go math.go也就是说要把相关以来的内容相关的文件也要加到run 后面go build 如果不指定文件名字那么go会自行加载依赖项目可以顺利执行

CATALOG
  1. 1. main 函数定义
  2. 2. main 的运行
  3. 3. main 包文件(内容)的拆分