GoNote第一章 环境搭建
golang介绍
1. 语言介绍
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
Go 语言是谷歌为充分利用现代硬件性能又兼顾开发效率而设计的一种全新语言。
Go 是一种跨平台(Mac OS、Windows、Linux 等)静态编译型语言。拥有媲美 C 语言的强大性能,支持静态类型安全,在普通计算机上能几秒内快速编译一个大项目,开发效率跟动态语言相差无几。
Go 语言在国内拥有非常活跃的社区、不仅大公司的 Go 项目越来越多,中小公司也都在考虑 Go 的应用。当前 Go 语言主要应用于后端服务的开发,未来随着 Go 项目的完善,在系统、游戏、UI界面、AI、物联网等领域,都将被广泛使用。
当然 Go 语言有优点也有一些缺点,完美的东西毕竟太少,如果看好 Go 的未来发展,那么不如抛开成见先来体验一番。
2. 特性说明
跨平台即最终可以执行到Windows,Linux,Unix等操作系统;
静态语言:1)编译工具代码感知更友好;2)商业系统大型开发更有保障;3)静态语言相对封闭,第三方开发包侵害性小;
动态语言:1)代码编写更灵活;2)相对代码更简洁;
编译型和非编译型语言
Java 和 C# 比较特殊,源代码需要先转换成一种中间文件(字节码文件),然后再将中间文件拿到虚拟机中执行;
安装部署
go官网: https://golang.google.cn/dl/ ,请选择自己对应的系统
中文社区:https://studygolang.com/dl
1. win环境
- 下载go.{version}.windows-amd64.msi或者go.{version}.windows-amd64.zip包,此次使用go.{version}.windows-amd64.zip包
- 解压压缩文件(这里使用的是D:\Project,后面都基于这个目录)
- 配置环境变量GOPATH和GOROOT
# 打开cmd设置
set GOPATH=D:\Project\GOPATH
set GOROOT=D:\Project\GO
set PATH=%PATH%;%GOROOT%\bin
当然应该将这些环境变量配置到系统环境变量中
- 此时打开cmd窗口,运行
go version
即可展示安装golang版本
> go version
go version go1.13.5 windows/amd64
2. linux环境
- 下载linux版本对应安装包,这里使用 go{version}.linux-amd64.tar.gz
- 进入linux对应目录,解压文件
tar -zxvf go{version}.linux-amd64.tar.gz
- 设置环境变量GOPATH和GOROOT
# 临时修改
export GOPATH=D:\Project\GOPATH
export GOROOT=D:\Project\GO
export PATH=%PATH%:%GOROOT%\bin
修改全局环境变量
# 编辑全局环境变量文件
vi /etc/profile
# 追加环境变量都最后
export GOPATH=D:\Project\GOPATH
export GOROOT=D:\Project\GO
export PATH=%PATH%:%GOROOT%\bin
# 然后保存文件,并使文件生效
source /etc/profile
- 运行
go version
查看版本信息
# go version
go version go1.13.5 windows/amd64
运行和编译
新建项目
当然还是hello word示例。创建文件hello.go,使用文本编辑器编辑,一定要注意文件编码为UTF-8
package main
import "fmt"
func main() {
fmt.Println("Hello World !")
}
保存文件后,cmd到cd文件位置,运行
>go run hello.go
Hello World !
go编译运行
>go build hello.go
>hello.exe
hello world!
导入项目
- go mod tidy 删除不必要的依赖,添加OS, architecture, and build tags组合所需要的依赖。
- go mod vendor 可选步骤,用于建立vendor文件夹,用于vendor机制的包管理
- go mod init 将go项目初始化成module-mode,使用go modules进行依赖管理。
- go mod verify 校验go.sum记录的依赖信息是否正确
命令行
go mod init/tidy project
go mod download
参考:
https://gitee.com/goflyfox/gostudy