因为在公司普遍使用Docker的大环境下,忽然对它的编程语言(Go)了解下。而且感受如今Go语言的应用也是愈来愈普遍,不少互联网大厂都在使用,目前利用业余时间来学习下,主流仍是Java,学明白之后可能考虑转哦🤡。若是你也感兴趣不如一块儿来学习。git
简史程序员
Go语言是Google于2009年正式发布的一款开源的静态编译型语言。Go语言最先于2007年Robert Griesemer(Java HotSpot虚拟机、V8引擎开发者之一)和Ken Thompson(贝尔实验室UNIX团队成员,C语言、UNIX和Plan9创始人之一)与Rob Pike三人在业余时间联合开发。(老外就是吊
)时至今日Go语言已完成自举,社区生态斐然,包括大量拿的出手的杀手锏级项目(Moby、Docker、Kubernetes、Gogs、Grafana、Etcd)。github
特性golang
命名规范编程
Go语言的项目命名通常采用 【域名+项目名】,例如:github.com/example,这样命名的目录一是能够分割项目,不容易重名,二是可以迅速找到原项目的地址,三是方便获取代码包。vim
代码强制格式化api
Go语言有一个特点就是强制代码格式化,在你保存代码以后,可使用go fmt工具格式化,固然即便没有手动格式化,在编译时,Go语言编译器也会自动格式化全部源代码,这种强制格式化的作法能够有效统一编码风格。bash
目前Go语言支持Linux、FreeBSD、Mac OS、和Windows平台,安装包能够从 golang.google.cn/dl/ 下载。并发
基本命令 安装Go语言环境后就可使用go命令了,直接输入go help查看有哪些命令可用:编程语言
$ go help
go是用于管理Go语言源代码的工具。
用法:
go command [arguments]
包含的命令以下:
- build: 编译源代码包和依赖。
- clean: 删除对象文件。
- doc: 显示Go包或程序实体的文档。
- env: 打印输出Go语言环境的变量信息。
- bug: bug提交程序。
- fix: 修复程序。
- fmt: 格式化源码包中代码。
- generate: 经过扫描Go源码中的go:generate注释来识别要运行的常规命令。
- get: 下载并安装指定的包与依赖。
- install: 编译并安装指定的包与依赖。
- list: 打印指定源码包信息。
- run: 编译并运行Go程序。
- test: 测试一个源码包。
- tool: 运行一个指定的tool。
- version: 打印输出Go环境版本。
- vet: 检查源码包中可能出现的错误。
使用"go help [command]"查看每个命令的使用细节。
复制代码
目录结构
$GOROOT 做为Go语言环境的根目录,放置了下面这些内容:
& cd $GOROOT && ls -l
-rw-r--r-- 1 root wheel 55389 9 26 02:52 AUTHORS # 全部参与Go语言开发的人员名单
-rw-r--r-- 1 root wheel 1339 9 26 02:52 CONTRIBUTING.md # 为Go语言贡献代码的说明
-rw-r--r-- 1 root wheel 84339 9 26 02:52 CONTRIBUTORS # 全部贡献者名单
-rw-r--r-- 1 root wheel 1479 9 26 02:52 LICENSE # Go语言的开源协议
-rw-r--r-- 1 root wheel 1303 9 26 02:52 PATENTS # Go语言专利说明
-rw-r--r-- 1 root wheel 1607 9 26 02:52 README.md # 说明文件
-rw-r--r-- 1 root wheel 397 9 26 02:52 SECURITY.md
-rw-r--r-- 1 root wheel 8 9 26 02:52 VERSION # Go语言版本文件
drwxr-xr-x 19 root wheel 608 9 26 02:55 api # Go语言API相关(变量、常量、函数)
drwxr-xr-x 4 root wheel 128 9 26 02:55 bin # 用于存储标准命令执行文件,go、godoc、gofmt三件套
drwxr-xr-x 50 root wheel 1600 9 26 02:55 doc # 存放标准库的文档
-rw-r--r-- 1 root wheel 5686 9 26 02:52 favicon.ico # Go语言的图标
drwxr-xr-x 3 root wheel 96 9 26 02:55 lib # 存放一些特殊的库文件
drwxr-xr-x 16 root wheel 512 9 26 02:55 misc # 辅助工具和说明
drwxr-xr-x 6 root wheel 192 9 26 02:55 pkg # 存放Go语言标准库生成的文件
-rw-r--r-- 1 root wheel 26 9 26 02:52 robots.txt # 禁止搜索引擎索引本地启动的Go文档
drwxr-xr-x 71 root wheel 2272 9 26 02:55 src # 存放GO语言本身的源代码
drwxr-xr-x 327 root wheel 10464 9 26 02:55 test # 存放测试验证相关的文件
复制代码
$GOPATH就是一个工做目录,咱们开发GO语言程序就是在这里进行的,这个目录通常有三个文件夹:
- bin: 存放go install生成的可执行文件前面把$GOPATH/bin路径加入PATH环境变量后就能够在全局任意位置使用这个文件夹内的执行文件。
- pkg: 存放go编辑生成的文件。
- src: 存放咱们开发的Go项目的源代码,不用工程项目的代码已包名区分。
复制代码
Visual Studio Code
来自微软的开源编辑器Visual Studio Code的确是开发Go语言程序的好工具之一,庞大的生态系统使得它不只仅是一个编辑器,它还拥有大部分Go语言开发过程当中使用的工具链。
VIM-Go
VIM编辑器是大部分程序员的最爱之一,在VIM的生态中也有一款比较流行的GO语言开发插件----VIM-GO,安装这个插件与安装其余VIM插件的方法同样。
Gogland
来自著名的Jetbrains公司开发的IDE(Goland)是一款专门为Go语言开发而设计的IDE。
LiteIDE
LiteIDE是一款专门为GO语言开发的跨平台轻量级集成开发环境,LiteIDE是开源的工具,代码托管在github上。
如今开始编写第一个程序了,建立一个组织目录,例如 code.local,而后创建一个项目名为hello-word,最终目录路径为$PATH/src/code.local/hello-word