入门当然还是helloworld,顺便了解基本结构
我们的go程序扩展名都是.go文件,我们先推荐下程序目录。也不是严格限制
目录结构推荐gocode/src/,然后src下又有project1,projectxx,序号区分,projectx下面又有main,package目录层级,main放代码,package放额外的包,如下
我们看到如上的代码,main文件夹下创建main.go文件,里面编写内容
首行package main是声明文件main.go的所属包,所有的go文件都必须开头声明其所属,这个之前讲过
import "fmt"是导入fmt包,其包含标准输入输出格式化的方法,注意是双引号
func main是定义了个main方法,无参,里面调用fmt的Print方法,注意是首字母大写,内容也是双引号,和java类似。但是go文件语句不加;结尾,都是靠缩进调整,这点又跟python类似(取长补短)
我们写完了可以用go build main.go进行编译,会在当前目录上生成main.exe文件(windows),linux会生成无后缀可执行文件(main)
我们选中window界面目录,然后直接输入cmd就可以实现当前目录进入shell,我以前还是shift右键进的powershell蓝色界面,还是使用自带的shell比较好。
如上,我们编译后,就会生成exe文件,生成exe文件当然就比较简单了,我们可使用输入文件名执行
如上,我们可以看到其执行结果,就是我们想要的输出HelloWorld!
当然,我们还可以使用go run main.go,这种运行是编译加执行一起做了,生产环境下,我们不推荐这种使用。我们使用go build生成的exe可以拿到没有go开发环境的机器去执行,而go run xx.go需要有go环境
我们还可以看到上图,go文件本身不大,但是生成的exe文件就有一定大小,这是因为我们编译后可执行文件会把相关的依赖编译进去
当然,我们还可以go build -o 可执行文件名 xx.go来给我们的go程序生成我们要的exe文件,执行效果一样
对于编译,如果我们代码又错误,就会显示错误行号和问题,我们修改代码编译运行前记得使用vscode保存,否则没有刷新进去,效果如下
如上,我们就修改了函数名,当然就没有定义过,就会报undefined错误
这里再简单说下vscode的设置,是preference首选项,settings里编辑,如字体,我们可以调整,默认的是14
开发注意事项
1 go的代码文件必须以go结尾
如上,我们复制main.go文件,然后将其重命名成main.xx,我们go build会报错
2 go程序必须以main作为入口
这个没什么说的,和java,c等是一样的
3 go语言严格区分大小写
也没什么说的,该大写就大写,该小写就小写,不能混用
4 go每条语句不用加分号
之前讲过,和python一样,编译器自动加(加了也没问题,但是不嫌麻烦吗)
5 go一行只写一个语句
不要把多行写到一起
6 go里没有用到的包或者变量,编译不能通过
可能在java里,我们使用go开发,即使没有用到也不会编译报错,但是go不行
如上是我们导包没有使用报的方法
如上,这个是定义变量却没有使用