我是接触到了Docker,才接触到go语言的,它简洁高效的语法、高效的开发效率和语言层面上的并发支持 深深的吸引了我。
|
语言优点 |
语法简洁,相比其余语言更容易上手,开发效率更高; |
自带垃圾回收(GC),不用再手动申请释放内存,可以有效避免 Bug,提升性能; |
语言层面的并发支持,让你很容易开发出高性能的程序; |
提供的标准库强大,第三方库也足够丰富,能够拿来即用,提升开发效率; |
可经过静态编译直接生成一个可执行文件,运行时不依赖其余库,部署方便,可伸缩能力强; |
提供跨平台支持,很容易编译出跨各个系统平台直接运行的程序。 |
对比其余语言,Go 的优点也显著。好比 Java 虽然具有垃圾回收功能,但它是解释型语言,须要安装 JVM 虚拟机才能运行;C 语言虽然不用解释,能够直接编译运行,可是它不具有垃圾回收功能,须要开发者本身管理内存的申请和释放,容易出问题。而 Go 语言具有了二者的优点。 |
现在微服务和云原生已经成为一种趋势,而 Go 做为一款高性能的编译型语言,最适合承载落地微服务的实现 ,又容易生成跨平台的可执行文件,相比其余编程语言更容易部署在 Docker 容器中,实现灵活的自动伸缩服务。 |
要想搭建 Go 语言开发环境,须要先下载 Go 语言开发包。你能够从官网 国外的官网 和国内的官网 下载。linux
Windows MSI 下安装
MSI 安装的方式比较简单,在 Windows 系统上推荐使用这种方式。如今的操做系统基本上都是 64 位的,因此选择 64 位的 go1.15.windows-amd64.msi 下载便可,若是操做系统是 32 位的,选择 go1.15.windows-386.msi 进行下载。git
下载后双击该 MSI 安装文件,按照提示一步步地安装便可。在默认状况下,Go 语言开发工具包会被安装到 c:\Go 目录,你也能够在安装过程当中选择本身想要安装的目录。golang
假设安装到 c:\Go 目录,安装程序会自动把 c:\Go\bin 添加到你的 PATH 环境变量中,若是没有的话,你能够经过系统 -> 控制面板 -> 高级 -> 环境变量选项来手动添加。web
Linux 下安装
Linux 系统一样有 32 位和 64 位,你能够根据你的 Linux 操做系统选择相应的压缩包,它们分别是 go1.15.linux-386.tar.gz 和 go1.15.linux-amd64.tar.gz。编程
下载成功后,须要先进行解压,假设你下载的是 go1.15.linux-amd64.tar.gz,在终端经过以下命令便可解压:windows
sudo tar -C /usr/local -xzf go1.15.linux-amd64.tar.gz
输入后回车,而后输入你的电脑密码,便可解压到 /usr/local 目录,而后把 /usr/local/go/bin 添加到 PATH 环境变量中,就可使用 Go 语言开发工具包了。bash
把下面这段添加到 /etc/profile 或者 $HOME/.profile 文件中,保存后退出便可成功添加环境变量。架构
export PATH=$PATH:/usr/local/go/bin
macOS 下安装
若是你的操做系统是 macOS,能够采用 PKG 安装包。下载 go1.15.darwin-amd64.pkg 后,双击按照提示安装便可。安装成功后,路径 /usr/local/go/bin 应该已经被添加到了 PATH 环境变量中,若是没有的话,你能够手动添加,和上面 Linux 的方式同样,把以下内容添加到 /etc/profile 或者 $HOME/.profile 文件保存便可。并发
export PATH=$PATH:/usr/local/go/bin
安装测试
以上都安装成功后,你能够打开终端或者命令提示符,输入 go version 来验证 Go 语言开发工具包是否安装成功。若是成功的话,会打印出 Go 语言的版本和系统信息,以下所示:编程语言
$ go version go version go1.15 darwin/amd64
环境变量设置
Go 语言开发工具包安装好以后,它的开发环境尚未彻底搭建完成,由于还有两个重要的环境变量没有设置,它们分别是 GOPATH 和 GOBIN。
GOPATH:表明 Go 语言项目的工做目录,在 Go Module 模式以前很是重要,如今基本上用来存放使用 go get 命令获取的项目。
GOBIN:表明 Go 编译生成的程序的安装目录,好比经过 go install 命令,会把生成的 Go 程序安装到 GOBIN 目录下,以供你在终端使用。
假设工做目录为 /Users/flysnow/go,你须要把 GOPATH 环境变量设置为 /Users/flysnow/go,把 GOBIN 环境变量设置为 $GOPATH/bin。
在 Linux 和 macOS 下,把如下内容添加到 /etc/profile 或者 $HOME/.profile 文件保存便可。
export GOPATH=/Users/flysnow/go export GOBIN=$GOPATH/bin
在 Windows 操做系统中,则经过控制面板 -> 高级 -> 环境变量选项添加这两个环境变量便可。
项目结构
采用 Go Module 的方式,能够在任何位置建立你的 Go 语言项目。
假设你的项目位置是 /Users/flysnow/git/gotour,打开终端,输入以下命令切换到该目录下:
$ cd /Users/flysnow/git/gotour
而后再执行以下命令建立一个 Go Module 项目:
$ go mod init
执行成功后,会生成一个 go.mod 文件。而后在当前目录下建立一个 main.go 文件,这样整个项目目录结构是:
gotour ├── go.mod ├── lib └── main.go
其中 main.go 是整个项目的入口文件,里面有 main 函数。lib 目录是项目的子模块,根据项目需求能够新建不少个目录做为子模块,也能够继续嵌套为子模块的子模块。
编译发布
完成了你的项目后,能够编译生成可执行文件,也能够把它发布到 $GOBIN 目录,以供在终端使用。以“Hello 世界”为例,在项目根目录输入如下命令,便可编译一个可执行文件。
$ go build ./ch01/main.go
回车执行后会在当前目录生成 main 可执行文件,如今,咱们来测试下它是否可用。
$ ./main Hello, 世界
若是成功打印出“Hello, 世界”,证实程序成功生成。
以上生成的可执行文件在当前目录,也能够把它安装到 $GOBIN 目录或者任意位置,以下所示:
$ go install ./ch01/main.go
使用 go install 命令便可,如今你在任意时刻打开终端,输入 main 回车,都会打印出“Hello, 世界”,是否是很方便!
跨平台编译
Go 语言开发工具包的另外一强大功能就是能够跨平台编译。什么是跨平台编译呢?就是你在 macOS 开发,能够编译 Linux、Window 等平台上的可执行程序,这样你开发的程序,就能够在这些平台上运行。也就是说,你能够选择喜欢的操做系统作开发,并跨平台编译成须要发布平台的可执行程序便可。
Go 语言经过两个环境变量来控制跨平台编译,它们分别是 GOOS 和 GOARCH 。
GOOS:表明要编译的目标操做系统,常见的有 Linux、Windows、Darwin 等。
GOARCH:表明要编译的目标处理器架构,常见的有 38六、AMD6四、ARM64 等。
这样经过组合不一样的 GOOS 和 GOARCH,就能够编译出不一样的可执行程序。好比我如今的操做系统是 macOS AMD64 的,我想编译出 Linux AMD64 的可执行程序,只须要执行 go build 命令便可,如如下代码所示:
$ GOOS=linux GOARCH=amd64 go build ./ch01/main.go
关于 GOOS 和 GOARCH 更多的组合,参考官方文档的 $GOOS and $GOARCH 这一节便可。
Go 编辑器推荐
好的编辑器能够提升开发的效率,这里我推荐两款目前最流行的编辑器。
第一款是 Visual Studio Code + Go 扩展插件,可让你很是高效地开发,经过官方网站 https://code.visualstudio.com/ 下载使用。
第二款是老牌 IDE 公司 JetBrains 推出的 Goland,全部插件已经所有集成,更容易上手,而且功能强大,新手老手都适合,你能够经过官方网站 https://www.jetbrains.com/go/ 下载使用。
本文分享 CSDN - 希境。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。