学习了波Golang,独有的新鲜感,在此分享下与大家下。
一、IDE选择&准备
Golang作为目前最火的语言之一,必然离不开强大的IDE:Visual Studio Code(俗称:VS Code),废话不多说,咱们上图:
Step One:安装
官网下载最新的Golang 包,自行安装(小编这里用的是Mac,官网下载pkg安装包一样傻瓜式安装 ),安装完成后请输入 go env,你就可以看到如下页面:
这里我们对go env里面的信息稍微对几个重要的信息做些解读:
GOPROXY:golang是由很多模块组装而成,goproxy即表示这些模块下载的原,学过类似于Java的repository源、nodejs的npm源、C#的nuget源,可以选择切换成七牛的goproxy,切换方式:https://goproxy.cn,你可以在没有VPN的情况下体验下飞一般的感觉
GOMODCACHE:go mod是一个很好的包依赖管理工具,开启go mod之后,可以使用go mod init [项目名称]去初始化一个项目,这个时候会在根目录下生成:go.mod,在进行run或者build的时候,就会根据go.mod里包的顺序去加载;
GOROOT:这个是Go的安装目录,类似于Java的jdk的安装目录;
GOPATH:GOPATH是我们的工作空间,保存go项目代码和第三方依赖包(据说go的早期版本需要将代码放置到该目录下,或者手动配置每个项目的GOPATH,相对不是很灵活,当然现在不用哈)
其余的暂时就不写了哈,有的小编暂时也不是很了解,不过备注下,使用了mod之后,mod会把所有的包缓存在 GOMODCACHE目录下,如下图(即时已经缓存的包):
Step Two:插件安装
在VS Code中找到插件,搜索 go,安装即可(一定会搜到很多,用你的慧眼选择最亮的那个)
Step Three:数据库准备
本机安装个Mysql,5.7或者8.0,配置好账密(此处教程忽略,麻烦自行百度哈)
Step Four:Cobra
中文翻译:眼镜蛇。这是一个很强大的工具,https://github.com/spf13/cobra,官网文档,可以先拜读下,然后再安装(内容比较强大,小编正在学习中)。
Step Five:基础引入包命令(go get)
当你走完上面的四步之后,就可以尝试引入一些模块依赖包了,比如step four中的cobra引入,就需要使用go get -u http://github.com/spf13/cobra,后续引入其余模块也是一样(各大提供包的官方均有提供)。
二、HelloWorld
在预先准备写HelloWorld之前,我们可以先拜读一下官方文档:https://github.com/golang-standards/project-layout,里面有对于golang项目的文件夹建立的标准规范,当然你也可以在其中找到很多的demo。
我们开始建立我们的练习项目。先找好一个文件夹,然后 mkdir 一个文件夹,比如 goexcise。进入go excise文件夹中,此时你会发现空空如也,敲一行命令:go mod init goexcise
再分别建立api、cmd、pkg、web文件夹,同时新建一个main.go的文件,完成后,如下图所示:
我们再在如下的文件夹中新建文件,并抄写以下截图中的代码:
当你敲完之后,记得保存下每个文件,Nice,然后你可以使用go run开始启动你的demo了。这时候我们使用的是go run main.go version,version可以理解为我们的子项目名称;当然,我们也可以直接go run main.go,这时候我们的root.go需要改成以下内容:
我们可以对比截图中的分析下,我们对于var {}中的rootCmd增加了Run方法以及实现,输出了“Hello World,Goblin ,--default”,此时,我们直接运行 go run main.go,那么编译器会先执行main函数,cmd是包名(文件夹名称),会找到这个文件夹下的Execute()方法,这个方法中会去执行rootCmd,由于启动参数没有指定子模块,此时会执行默认模块,即“cobra”。当然,我们在root.go中定义了rootCmd,其中的Use就是启动参数,如果我们启动的时候指定Use的模块,比如:“version”,那就会执行add.go中的versionCmd了
好了,到此,我们的Hello World就算结束了,总结一下:golang的语法相对要求比较高一些,区分换行、空格等,不能随意tab,enter、空格等,还是踩了点坑;不过换句话讲,golang的设计思想相比C#和Java还是略有些不同,这个我们后面再深入研究下。
下一篇章,我们将继续研究Mysql的集成和基本使用哈