Go的基本介绍与配置
Go: Less can be more
什么是Go
Go语言简介
Go(Golang) 是由谷歌开发的一个开源的编译型的静态语言。Go是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了GO 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
Go的主要关注点是使得高可用性和可扩展性的Web应用的开发变得简便容易。(译注:Go的定位是系统编程语言,只是对 Web开发支持较好)。
Go语言的设计初衷
2007年,受够了C++煎熬的 Google 首席软件工程师 Rob Pike纠集Robert Griesemer和Ken Thompson两位牛人,决定创造一种新语言来取代C++。
根据Google当时内部的一些实际情况,比如大部分工程师使用的都是C语言,所以新设计的语言最好跟C语言类似,而且要简单易学。另外,因为已经有二十年左右的时间没有出现新的编程语言了,所以新设计的语言一定要足够现代化(例如内置GC),因此才出现了现在的Go语言。
在Go语言问世后,很多人将它称为 21 世纪的C语言,因为Go语言不仅拥有C语言的简洁和性能,还拥有媲美解释型语言的开发效率以及近乎于完美的编译速度,同时还很好的提供了 21 世纪互联网环境下服务端开发的各种实用特性。
Go语言的主要特征
- 自动立即挥手
- 更丰富的内置类型
- 函数多返回值
- 错误处理
- 匿名函数和闭包
- 类型和接口
- 并发编程
- 反射
- 语言交互性
- 简洁、快速、安全
- 并行、有趣、开源
- 内存管理、数组安全、编译迅速
Go语言的声明
1. Go语言主要有四种声明方式
- 声明变量
var - 声明常量
const - 声明类型
type - 声明函数
func
2. Go语言的文件是以.go后缀进行命名
3. Go文件的第一行是package声明,声明当前文件所属的包
4. import声明用于引入其他文件
5. main函数,程序的入口函数
配置Go
安装Go编译器
安装go的编译器在网上有很多教程,下面我会展示在Mac上安装的方式。
首先访问Go下载官网,下载合适的版本,本文安装的版本是go1.18.2.darwin-amd64.pkg,傻瓜式安装即可。你也可以使用homebrew进行安装,或者使用二进制包进行安装,这里就不展开说了。
配置Go环境变量
安装完成后,我们需要配置Go的环境变量。如果你使用的是bash,只需要编辑.bash_profile即可,如果你用的是zsh,编辑.zshrc即可,他们都在~目录,即当前用户目录。配置以下环境变量即可。
#配置go的安装目录,使用pkg安装会安装在该目录
export GOROOT=/usr/local/go
#配置工作空间,选择你自己的目录
export GOPATH=/User/[你的用户名]/go
#配置工作空间可执行文件的目录(可不配置)
export PATH=$PATH:$GOPATH/bin
配置完成保存后,需要运行以下命令使环境生效。
#bash
source ~/.bash_profile
#zsh
source ~/.zshrc
运行go version命令,显示出go的版本说明配置成功了。我们也可以通过go env命令查看go的环境变量。

Go Module
从go 1.11开始,我们可以基于Go Module在任意位置创建Go项目,不需要局限在工作空间中,也意味着我们不用再一遍一遍配置环境变量。要创建Module工程,我们只需要简单的命令即可。
#设置module模式开启
go env -w GO111MODULE=on
#设置代理为七牛云模块代理
go env -w GOPROXY=https://goproxy.cn,direct
#创建project1目录并进入该目录
mkdir project1 && cd project1
#初始化project1
go mod init project1
运行命令后,目录下会产生一个go.mod的文件,该文件是Go语言工具链用于管理Go语言项目的一个配置文件,我们不需要去修改它,Go的工具链会帮我们自动更新,例如引用新的库。
配置编辑器
在开始写代码前,我们需要一个编辑器来编程。我使用的是vscode,那么我们还需要给vscode安装一些关于Go的插件。
首先我们在扩展中搜索go,如下图进行安装即可。

安装好Go插件后,我们还需安装一些Go的工具。Command+Shift+P打开命令面板,然后输入Go:Install/Update Tools,回车后,将展示出的所有工具选择安装。

如果遇到go: could not create module cache: read-only file system,可以打开Mac的终端手动运行控制台的命令。
编写HelloWorld
到这里,我们已经完成了Go的配置,那么我们就来写第一个Go的程序吧。首先,先创建第一个程序的目录。
#创建项目目录并进入
mkdir myfirstproject && cd myfirstproject
#初始化module
go mod init myfirstproject
#创建main.go文件
touch main.go
我们可以在终端使用vim进行代码编写,也可以在vscode中进行代码编写。
//所属包
package main
//引入fmt包
import "fmt"
//main函数,程序的入口
func main(){
//打印Hello World!
fmt.Println("Hello World!")
}
代码编写完后,我们打开一个终端,输入命令go run main.go,输出Hello World!。

我们的第一个Go程序就编写完毕了。