大家好,我是老表,最近有想法了解学习下Go语言,也顺便开启Go语言学习专栏,希望自己站在一个初学者角度,能写出一些对其他初学者或者有问题的读者朋友有帮助的内容。
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易,主要有以下特点:
可直接编译成机器码,性能强劲
支持并发,垃圾回收
标准库很多,也很小,开发效率高
代码简洁,格式统一,阅读方便
安装环境
进入go语言官网下载安装包,这里我们下载稳定版中的 installer版本。 官网地址:https://golang.google.cn/dl/
相比于解压版,直接安装包安装可以省去自己配置环境变量等操作,傻瓜式一键安装,方便,适合初学者。
安装完成后,我们可以打开终端,查看go是否安装好了,输入go version
即可测试go指令是否正常,并查看安装的go版本。
正常显示版本信息,就说明go环境安装成功啦~
测试使用:Hello world
新建一个目录go,用于存放go语言相关代码,在go目录下新建一个hello.go,
cdDesktop/Project/&&mkdirgotouchhello.go
直接用文本编辑器打开,将下面代码复制进去,然后保存关闭,这样我们就写好go语言第一个项目代码啦。
packagemainimport"fmt"funcmain(){/*程序员的第一行代码*/fmt.Println("Hello,World!")}
打开终端,进入到对应的目录,并执行go run运行代码:
cdDesktop/Project/gogorunhello.go
接下来我们简单解析下这几行代码各自的作用:
//表示当前文件hello_go.go所在包是mainpackagemain//表示导入一个包,和Python中导包类似import"fmt"/*go中用func来定义函数函数定义格式:func函数名字(){函数内容}main是程序执行入口*/funcmain(){//程序员的第一行代码//调用fmt包中的Println打印字符串fmt.Println("Hello,World!")}
以上我们就安装并简单使用go编写了一个项目,接下来我们将进行进一步学习。
安装&使用vs code
为了更方便的学习、编写代码,安装一个好的开发工具是很必要的,网络上查了一下,最终选择了vs code,主要原因:开源免费、插件多、之前也听很多大佬说过,两个字:好用。
基础安装
官网下载地址:https://code.visualstudio.com/
选择好对应的系统,然后下载稳定版。
下载好,解压后直接点击即可打开使用,都不用安装,还可以安装中文语言包,直接界面汉化,使用更方便。
太爱了,安装了很多工具包:
快捷操作
Ctrl/Command+P快速调出查询窗口,可以查找文件,跳转Ctrl/Command+Shift+P快速调出命令窗口,可以执行一些指令,比如snippets,设置快捷代码块Ctrl/Command+Shift+M快速显示“问题”面板Ctrl/Command+H查找替换Ctrl/Command+Shift+F在整个文件夹中查找Ctrl+~调出终端或者隐藏
设置快捷代码块 在vs code中 Ctrl/Command+Shift+P,然后输入snippets
,点击进去后,先选择要添加代码片段的语言,比如go。 进入配置文件后,会有注释提示
{//Placeyoursnippetsforgohere.Eachsnippetisdefinedunderasnippetnameandhasaprefix,bodyand//description.Theprefixiswhatisusedtotriggerthesnippetandthebodywillbeexpandedandinserted.Possiblevariablesare://$1,$2fortabstops,$0forthefinalcursorposition,and${1:label},${2:another}forplaceholders.Placeholderswiththe//sameidsareconnected.//Example://"Printtoconsole":{//"prefix":"log",//"body":[//"console.log('$1');",//"$2"//],//"description":"Logoutputtoconsole"//}}
我们根据注释提示输入一个字典(json串)即可,比如下面利用pln
拓展fmt.Println($0)
。
"println":{"prefix":"pln",#触发代码块生效"body":"fmt.Println($0)",#拓展代码块内容"description":"println"#注释}
在vs code中新建一个go项目
直接文件->新建文件
会新建一个代码文件,不是一个文件夹或者初始化的什么项目,同时这个文件还可以先自己选择编程语言,或者程序自己识别。 这里我们选择文件-打开
然后到Desktop/Project/go
(我们之前专门用于存储go项目的目录)下面新建一个hello_go
文件夹,以这样的方式新建一个项目。
新建好项目文件后,可以再文件夹中新建一个01_hello_go.go文件,然后将前面写的hello_world代码复制粘贴进去即可。
Ctrl+F5可以自动运行,也可以在功能栏选择运行-非调试模式运行。
第一次运行会提示需要安装相关工具包,在让程序安装前需要先设置Go国内加速镜像,先打开终端/cmd,输入下面代码即可:
#macexportGO111MODULE=onexportGOPROXY=https://goproxy.io,direct#windows$env:GO111MODULE="on"$env:GOPROXY="https://goproxy.io,direct"
然后在在vscode内更新go工具包即可,如果找不到安装键了,可以再运行一遍代码或者按Ctrl/Command+Shift+P,然后输入update tools
选择go这个就可以。
如果还是更新失败,我觉得你可能和我一样是文件权限问题,我安装不上是因为/usr/local/go/bin目录权限问题导致(最后才发现)!!!
sudochmod-R777/usr/local/go/bin
如果还是不行,那太难了,你就只能手动安装了,步骤如下:
第一步:下载相关工具包 下面所有git地址我都换成了国内可以访问的快速地址,希望对大家有所帮助~
#进入go环境,并创建src/golang.org/x目录cd$GOPATHmkdir-psrc/golang.org/x&&cdsrc/golang.org/x#从github下载必要插件工具包gitclonehttps://hub.fastgit.org/golang/tools.gitgitclonehttps://hub.fastgit.org/golang/lint.gitgitclonehttps://hub.fastgit.org/golang/mod.gitgitclonehttps://hub.fastgit.org/golang/xerrors.git
第二部:安装相关工具包
packagemainimport"fmt"funcmain(){/*程序员的第一行代码*/fmt.Println("Hello,World!")}0
packagemainimport"fmt"funcmain(){/*程序员的第一行代码*/fmt.Println("Hello,World!")}1
packagemainimport"fmt"funcmain(){/*程序员的第一行代码*/fmt.Println("Hello,World!")}2
如果安装完这些还提示缺什么,就按上面方法git下载,然后install即可。
(前面已经说了,这里再感叹下,这个问题卡了我1天时间!!!)前面这么多手动操作,到最后发现是自己目录权限问题导致安装不上的,直接修改下权限就可以安装成功了,悟了!
sudochmod-R777/usr/local/go/bin
相关依赖包的安装好后,我们再运行代码就可以成功的输出Hello World
啦~
下期见,我是爱猫爱技术的老表,如果觉得本文对你学习有所帮助,欢迎点赞、评论、关注我!
参考文章
[a]为什么要使用 Go 语言?Go 语言的优势在哪里?:https://www.zhihu.com/question/21409296
[b]Mac 系统下 Go 语言环境的安装与配置:https://bbs.huaweicloud.com/blogs/detail/242417
[c]Go语言有什么好用的IDE吗?https://www.zhihu.com/question/25012617
[d]Atom、Sublime Text、VSCode 三者比较,各有哪些优势和弱势?https://www.zhihu.com/question/41857899
[e]LiteIDE X 与 VSCode https://www.reddit.com/r/golang/comments/aeozuv/liteide_x_vs_vscode/
[f]VS Code配置Go语言开发环境 https://www.liwenzhou.com/posts/Go/00_go_in_vscode/
[e]macos安装go语言和vscode插件 https://blog.csdn.net/luxingjyp/article/details/104916092
[f]vscode 安装 golang插件,报错 permission denied https://www.cnblogs.com/fsqsec/p/14836971.html