Go语言简介
什么是Go语言
Go语言是谷歌2009发布的第二款开源编程语言。
Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
Go 语言具有很强的表达能力,它简洁、清晰而高效。得益于其并发机制, 用它编写的程序能够非常有效地利用多核与联网的计算机,其新颖的类型系统则使程序结构变得灵活而模块化。
Go 代码编译成机器码不仅非常迅速,还具有方便的垃圾收集机制和强大的运行时反射机制。 它是一个快速的、静态类型的编译型语言,感觉却像动态类型的解释型语言。
Go语言起源
Go 语 言 起 源 2007 年, 并 于 2009 年 正 式 对 外 发 布。 它 从 2009 年 9 月 21 日 开 始 作 为 谷 歌 公 司 20% 兼 职 项 目, 即 相 关 员 工 利 用 20% 的 空 余 时 间 来 参 与 Go 语 言 的 研 发 工 作。 该 项 目 的 三 位 领 导 者 均 是 著 名 的 IT 工 程 师: Robert Griesemer, 参 与 开 发 Java HotSpot 虚 拟 机; Rob Pike, Go 语 言 项 目 总 负 责 人, 贝 尔 实 验 室 Unix 团 队 成 员, 参 与 的 项 目 包 括 Plan 9, Inferno 操 作 系 统 和 Limbo 编 程 语 言; Ken Thompson, 贝 尔 实 验 室 Unix 团 队 成 员, C 语 言、 Unix 和 Plan 9 的 创 始 人 之 一, 与 Rob Pike 共 同 开 发 了 UTF-8 字 符 集 规 范。 自 2008 年 1 月 起, Ken Thompson 就 开 始 研 发 一 款 以 C 语 言 为 目 标 结 果 的 编 译 器 来 拓 展 Go 语 言 的 设 计 思 想。
Ivo Balbaert. Go入门指南——The Way to Go(中文版) (Kindle 位置 112-117). 人民邮电出版社.
Go语言特点
- 简洁、快速、安全
- 并行、有趣、开源
- 内存管理、数组安全、编译迅速
GO语言应用场景
- 服务器编程, 如处理日志、数据打包、虚拟机处理、文件系统等
- 分布式系统 (数据库代理、中间件)
- 网络编程 (web应用、api应用)
- 云平台 例如 docker、k8s都是go语言开发的
Go语言官网
https://golang.org/
如果访问速度慢或者无法访问请访问谷歌中国官网
https://golang.google.cn/
Go语言windows/.macOS/linux/raspberryPi开发环境安装是编程的第一步,也是最简单的. 现在我们就就开始安装最新的go语言开发环境.这篇文章的时候go版本号1.12.9
最新的下载页面
从Go 1.13开始,go命令默认使用Go模块镜像和Go运行的校验和数据库来下载和验证模块. 有关这些服务的隐私信息,请参阅https://proxy.golang.org/privacy ; 有关 配置详细信息, 请参阅 go命令文档,包括如何禁用这些服务器或使用不同的服务器.
windows和mac安装最为简单
windows msi安装Go语言环境
- 下载安装包msi文件
https://dl.google.com/go/go1.12.9.windows-amd64.msi
,1.12.9
您可以替换成您想要的版本 - 下载完成之后双击
go1.12.9.windows-amd64.msi
安装文件,同意协议,选择安装路径,勾选自动给您添加环境变量 - 检查go是否安装成功, 在
git-bash
或者powershell
或者CMD
中敲入go env
- 墙内用户设置环境变量
goproxy
为https://goproxy.io
或者https://mirrors.aliyun.com/goproxy/
macOS pkg安装Go语言环境
- 下载安装包pkg文件
https://dl.google.com/go/go1.12.9.darwin-amd64.pkg
,1.12.9
您可以替换成您想要的版本 - 下载完成之后双击
go1.12.9.darwin-amd64.pkg
安装文件,同意协议,选择安装路径,勾选自动给您添加环境变量 - 检查go是否安装成功, 在
terminal
中敲入go env
- 墙内用户设置环境变量
goproxy
为https://goproxy.io
或者https://mirrors.aliyun.com/goproxy/
vim ~/.bashrc
或者vim /etc/profile
在文件最后添加export GOPROXY=https://goproxy.io
或者export GOPROXY=https://mirrors.aliyun.com/goproxy/
:wq
命令保持文件, 在终端中执行source /etc/profile
或者source ~/.bashrc
linux/centos/ubuntu 二进制装Go语言环境
下载安装二进制安装包
VERSION='1.12.9';#设置go语言版本 指定您的版本
OS=linux # 可选值 linux darwin
ARCH=amd64 #可选值 但是必须与您的操作系统匹配 amd64, 386, arm (树莓派raspberryPi3), arm64, s390x, ppc64le
GZFILE="go$VERSION.$OS-$ARCH.tar.gz" # 下载的安装名称包含arch
wget "https://dl.google.com/go/${GZFILE}";
rm -rf /usr/local/go; # 删除旧的go安装文件
tar -C /usr/local -xzf $GZFILE; #解压文件到 /usr/local/go目录中
墙内用户设置环境变量goproxy
为https://goproxy.io
或者 https://mirrors.aliyun.com/goproxy/
vim ~/.bashrc
或者 vim /etc/profile
在文件最后添加 export GOPROXY=https://goproxy.io
或者 export GOPROXY=https://mirrors.aliyun.com/goproxy/
:wq
命令保持文件, 在终端中执行 source /etc/profile
或者 source ~/.bashrc
当然以上命令也使用于macOS系统但是要选择适合的arch 操作系统
windows 设置goproxy教程,下载墙外的go依赖包
在Windows Powershell中,您可以执行以下命令.
# Enable the go modules feature
$env:GO111MODULE=on
# Set the GOPROXY environment variable
# 或者设置成阿里云的镜像 https://mirrors.aliyun.com/goproxy/
$env:GOPROXY=https://goproxy.io
现在,当您构建并运行应用程序时,go将通过goproxy
代理获取依赖项.
如果您的Go版本> = 1.13,则GOPRIVATE
环境变量控制go命令认为哪些模块是私有的(不公开),因此不应使用代理或校验和数据库.例如: go version > = 1.13
go env -w GOPROXY=https://goproxy.io,direct
# Set environment variable allow bypassing the proxy for selected modules
# 设置.corp.example.com 包名的依赖不使用goproxy代理
go env -w GOPRIVATE=*.corp.example.com
The End
线上交流工具: 在你的terminal中输入 ssh $用户@mojotv.cn
在你的terminal中输入 ssh mojotv.cn hn
查看最新 hacknews