您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
二周 发布于2019年11月21日 19:28 最近更新于 2019年11月21日 21:08

原创 Go语言一个包下只能有一个main()函数怎么办?

14167 次浏览 读完需要≈ 4 分钟 Golang

内容目录

Go语言的官方文档中上来就是一个很简单的Hello World。

// 你可以编辑这里的代码!
// 点击这里然后开始输入。
package main

import "fmt"

func main() {
	fmt.Println("Hello, 世界")
}

然而很多小伙伴却发现在一个包中写多个main()函数,却报错了。

  • 在 Java 中,每一个 Java 文件都可以包含一个main()方法,并且可以独立启动,这对于学习 Java 的同学来说太方便了。
  • 然而 Go 却不同,任何一个包中只能有一个Go文件带有main()函数

我在B站上看到一个视频,是一个培训老师在上课,他为了避免这个问题,就每写一个main()函数就新建一个包,这个包中基本就放一个文件main.go。效率真的很低,而且不便于浏览代码,要一层层的点文件夹。

还有人采用代码注释的方法,在main()函数中调用各种不同的函数,每次都注释掉无关的其他方法,这样真的好累,而且不便于版本管理,为了一个小小的测试,就多提交一次 commit 是无意义的。

编写可测试的Go代码

Go语言作为一门工程化语言,提供了非常简单而且实用的编写单元测试的能力。而且每个测试方法都可以单独执行,也可以通过一个命令全部执行。

  1. 文件名必须以xxx_test.go命名;
  2. 方法名称必须是Test[^a-z]开头,而且 Test 的后缀部分第一个字符必须大写;
  3. 方法参数必须是 t *testing.T

一旦我们按照这个要求写好了,VS Code会自动帮我们加上可执行的按钮,如图:

Go Test.png
Go Test.png

当然,你也可以通过命令执行:go test [flags] [packages]

如果你想对Go语言的测试有更深入的了解,可以参考 Go 单元测试,基准测试,http 测试

谢谢~

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论