问题一:能介绍一下golang的包的概念么?
答:golang程序是通过编译package来生成对应的可执行程序的,编译的入口就是main::main()。包分为两类,一类纪实可执行的包,就是你创建项目之后main.go。另一种是工具包。工具包自身是不可执行的,但是它会给可执行的包增加一些功能,从而起到扩展主应用的作用。当一个包被引用的时候,GO会使用包的声明把这个包创建为全局变量。在go中,一个包就是一个目录。
问题二:介绍一下goroot路径的作用呗?
答:goroot为go的安装路径,当安装完成了之后,他的作用就是goroot的src路径下为标准库的源码。他的第二个作用就是当执行go run. Go build go install命令的时候,需要去查找工具包的时候,会先在goroot目录下面查找.
问题三:介绍一下gopath路径的作用呗?
答:golang的工作路径,可以有多个项目工作路径,直接用;分开就好。当我们执行go build或者go install命令的时候,会先从goroot目录下查找。当没有查找到,那么就会再次从gopath目录下进行查找。当都没有查找到的时候,就会抛异常。
问题四:一个关于go build的问题?
介绍:如果你想编译你的go程序,需要到对应的项目文件夹内,执行对应的go build。如果我没有main.go文件,但是我有一个新的文件名。里面仍然是package main. Func main(){}.那么执行也是应该没有问题。或者我可以直接在这个项目内go build +有package main的文件名。也是能编译过的。就是go build他是怎么找入口的尼。如果没给参数。
问题五:go build和go install之间什么区别?
答:go build如果是有main:main的文件项目会生成一个二进制文件在当前目录下面。如果不是命令源文件就只是预编译一下,帮你去找找错误。go install会帮你安装到对应gopath下面的bin文件内。其他的操作和go build都差不多。
问题六:介绍一下go test命令呗?
答:通俗点说当你想对一些库文件想要进行测试一下的时候定义一个***_test.go的文件。里面定义好对应的调用测试函数。然后执行对应的go test加对应的函数名称就可以进行对应的测试。这个命令主要的作用就是方便你去测试一下你的代码是否可以。不用重新自己去写一个测试程序了。
问题七:介绍一个go run命令呗?
答:该命令可以直接的运行go命令源文件。并得到对应的结果。但是如果命令源文件中因为其他包,他仍然是需要从goroot和gopath目录下面去寻找的。但是只有一个命令源文件就不会有问题。
我个人感觉这个命令就是方便你想写一个测试的go例子。一个文件就可以搞定了。那么就不需要从头去搭建对应的工程开始了。
问题八:能说一下go源码到应用程序的过程么?
答:对于这个问题,我也只是知道一个大概,就是go 源代码文件会先合成一个中间文件。然后通过链接合成应用程序。这个链接应该就是go标准库或go提供的一下东西吧。和c/c++很像。c/c++需要经过预编译,汇编,链接。应用程序。
有疑问加站长微信联系(非本文作者)