第一章 Go语言基础
下载地址:https://go.dev/dl/
下载对应的安装包,没有合适可以下载go的源码,这里以windos为例;
下载好后,按照提示进行安装;
也可以自定义安装位置;
1.下载cd /opt/softsudo wget https://go.dev/dl/go1.18.1.linux-amd64.tar.gz2.解压sudo tar -xzvf go1.18.1.linux-amd64.tar.gz3.进入解压后的go目录cd go4.创建GOPATH目录mkdir GOPATH5.配置环境变量打开家目录下的.bashrc文件vim ~/.bashrc添加两行配置export GOPATH=/opt/soft/go/GOPATH export PATH=$PATH:$GOPATH:/opt/soft/go/bin1.加载环境变量到内存source ~/.bashrc2.查看go安装版本go version
安装go已自动配置全局变量,如需手动配置如下:找到:我的电脑,右键,打开“属性”选择“高级系统设置”弹出以下对话框,选择“高级”标签:点击“环境变量”按钮,弹出变量设置窗口:“新建”系统变量:设置变量名GOROOT,变量值D:huanjinggo(安装目录)修改系统变量Path,添加D:huanjinggobin1.1.3 go工具命令go veroin 查看go当前版本;
go run 编译并执行mAIn包(程序入口点);go build 编译程序,并不会执行;(默认生成的二进制文件包含调试信息和字符表,文件会变大)go build -dflags "-w -s" 从二进制文件剥离部分信息;./xxx 执行程序;doc fmt 自动检索包文档go get 一键获取代码、编译并安装
go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装。整个过程就像安装一个 App 一样简单。这个命令可以动态获取远程代码包,目前支持的有 BitBucket、Github、google Code 和 Launchpad。在使用 go get 命令前,需要安装与远程包匹配的代码管理工具,如 Git、SVN、HG 等,参数中需要提供一个包名。这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行 go install。下载源码包的 go 工具会自动根据不同的域名调用不同的源码工具,对应关系如下:
BitBucket (Mercurial Git)GitHub (Git)Google Code Project Hosting (Git, Mercurial, Subversion)Launchpad (Bazaar)
所以为了 go get 命令能正常工作,你必须确保安装了合适的源码管理工具,并同时把这些命令加入你的 PATH 中。其实 go get 支持自定义域名的功能。参数介绍:-d 只下载不安装-f 只有在你包含了 -u 参数的时候才有效,不让 -u 去验证 import 中的每一个都已经获取了,这对于本地 fork 的包特别有用-fix 在获取源码之后先运行 fix,然后再去做其他的事情-t 同时也下载需要为运行测试所需要的包-u 强制使用网络去更新包和它的依赖包-v 显示执行的命令
远程包的路径格式Go语言的代码被托管于 Github.com 网站,该网站是基于 Git 代码管理工具的,很多有名的项目都在该网站托管代码。其他类似的托管网站还有 code.google.com、bitbucket.org 等。这些网站的项目包路径都有一个共同的标准.远程包路径格式远程包路径是 Go语言的源码,这个路径共由 3 个部分组成:网站域名:表示代码托管的网站,类似于电子邮件 @ 后面的服务器地址。作者或机构:表明这个项目的归属,一般为网站的用户名,如果需要找到这个作者下的所有项目,可以直接在网站上通过搜索“域名/作者”进行查看。这部分类似于电子邮件 @ 前面的部分。项目名:每个网站下的作者或机构可能会同时拥有很多的项目,图中标示的部分表示项目名称。go get+ 远程包默认情况下,go get 可以直接使用。例如,想获取 go 的源码并编译,使用下面的命令行即可:$ go get github.com/davyxu/cel.NET获取前,请确保 GOPATH 已经设置。Go 1.8 版本之后,GOPATH 默认在用户目录的 go 文件夹下。cellnet 只是一个网络库,并没有可执行文件,因此在 go get 操作成功后 GOPATH 下的 bin 目录下不会有任何编译好的二进制文件。需要测试获取并编译二进制的,可以尝试下面的这个命令。当获取完成后,就会自动在 GOPATH 的 bin 目录下生成编译好的二进制文件。$ go get github.com/davyxu/tabtoygo get 使用时的附加参数使用 go get 时可以配合附加参数显示更多的信息及实现特殊的下载和安装操作,详见下表所示。go get 使用时的附加参数附加参数备 注-v显示操作流程的日志及信息,方便检查错误-u下载丢失的包,但不会更新已经存在的包-d只下载,不安装-insecure允许使用不安全的 HTTP 方式进行下载操作
以Goland为例下载安装包,进行安装;
是一个 Go 语言的代码质量检测工具(Linter for Go),具有快速、可配置、可扩展、灵活和美观等特性,可作为 golint 的替代方案。虽然 golint 很受欢迎,但是 revive 提供了更多新功能,值得你去花时间研究,例如,它运行得更快(最高可达6x!),允许使用 TOML 文件配置 linting 规则,并提供更多规则。
Goland 是一个Go语言IDE, 大名鼎鼎的JetBrains公司开发, JetBrains是IDE开发专家, 推出的个个是精品, 例如phpStorm, PyCharm, JetBrains有自己的一套IDE开发哲学, 用顺了它家公司的产品, 用来做Goland开发也是很不错的.只不过跟其他产品一样,它家是收费的, 要找破解,需要费点心思
一定要收藏这个可视化工具,你可以使用 Go Callvis 来可视化 Go 程序的调用图。这个开发工具有一个使用HTTP服务器的交互式视图。来自 GitHub 上 的介绍:”这个工具的目的是通过使用来自函数调用关系图的数据及其与包和类型的关系来对程序进行可视概览。这在你只是试图理解别人的代码结构,或在代码复杂性增加的大型项目中特别有用。4. IntelliJ + Go 插件这是老牌的IDE了, 也是由JetBrains公司出品, 其本身是支持JAVA的, 要用作Go语言开发,就需要加上Go插件, 其插件支持基本的开发功能, 例如编译,调试, 语法高亮,代码补全, 以及对引入库的管理,等等,
跟Goland一样, 这可是专属Go语言的IDE,所有开发功能它都齐备了,最关键的是,人家可是免费的.
是一个 Go 工具,专注于加快和改善开发人员的工作流程,自动化用户的工作流程,集成第三方的其他工具,定义自定义 cli 命令,并在每次更改时重新加载项目,而不必停止编写代码。
作为开放式IDE的鼻祖,Eclipse怎么可能少了对Go语言的支持,把GoEclipse插件注册进去,其完整的开放功能就马上配备好。
使编写 Go 测试变得容易。它是一个 Golang 命令行工具,它根据目标源文件的功能和方法签名生成表驱动测试。你有很多不同的插件可供选择,包括:Emacs、Vim、Atom编辑器、Visual Studio代码、IntelliJ Goland和Sublime Text 3 插件。
VSCode支持大部分语言, 所以也支持了Go, 你只需要把Go相关插件集成进去即可, 再关联上git等, 一个完整的Go开发环境就搭建起来了。