Go介绍

   Go语言被誉为21世纪的C语言,由Google公司开发,天生对高并发有着优秀的支持。并且语法极度简洁,关键字仅有25个。

   所以使用Go语言时你不用担心自己写的和大神写的有着天差地别,Go语言开发者所书写的代码大家基本都是能看得懂的。

   值得一提的是Go的跨平台性,Go语言跨平台性强到令人发指,你甚至可以再windows下进行开发然后编译出linux下的二进制文件进行部署。

Go安装

   以下是Go语言的官网,点击下载进行安装即可。

   image-20200928182520348

Windows

   windows平台下的安装十分简单。当我们下载完安装程序后,双击打开进行安装即可。

   image-20200928182629156

   image-20200928182639468

   image-20200928182704742

   image-20200928182717629

   image-20200928182826320

Linux

   如果你习惯了在Linux下进行编码,则可以安装LinuxGolang

   当然,基于Golang的跨平台特性,你在window下进行安装和书写代码后编译为Linux下的可执行文件也可。

   选择你的Go版本,进行安装。

wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz

   将下载好的文件解压到/usr/local目录下(建议使用root用户解压):

tar -zxvf go1.14.1.linux-amd64.tar.gz -C /usr/local  # 解压

   最后配置一下环境变量,: Linux下有两个文件可以配置环境变量,其中/etc/profile是对所有用户生效的;$HOME/.profile是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

   修改/etc/profile后要重启生效,修改$HOME/.profile后使用source命令加载$HOME/.profile文件即可生效。 检查:

~ go version
go version go1.14.1 linux/amd64

版本检查

   当安装完Go后,打开终端输入go version命令即可检查是否安装成功。

   image-20200928183308867

目录结构

   我们在windows下打开刚刚安装好的Go,可查看到如下的目录结构:

目录名 描述
api 每个版本的 api 变更差异
bin go 源码包编译出的编译器(go)、文档工具(godoc)、格式化工具(gofmt)
doc 英文版的 Go 文档
lib 引用的一些库文件
misc 杂项用途的文件,例如 Android 平台的编译、git 的提交钩子等
pkg Windows 平台编译好的中间文件
src 标准库的源码
test 测试用例

环境变量

GOROOT

   GOROOT为安装Go开发包的路径。

GOPATH

   GOPATH的路径需要我们自己在环境变量中进行配置,然后才可以使用Go语言进行开发。

   默认的在用户变量中,有一个GOPATH,我们可以将他修改为系统变量或者修改其中的值。

   修改任意值即可。

   image-20200928183746598

   image-20200928184018567

   在设置完环境变量后,使用go env可进行测试查看。

C:\Users\云崖先生>go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\云崖先生\AppData\Local\go-build
set GOENV=C:\Users\云崖先生\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\GoLeran\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\GoLeran
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=D:\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\ 云崖先生\AppData\Local\Temp\go-build516282802=/tmp/go-build -gno-record-gcc-switches

工程目录

   当配置完GOPATH的环境变量后,我们还需要创建一些文件夹。

   那么对于个人开发者和工程开发来说,都具有一个不同的目录结构。

个人开发

   在GOPATH中,我们编写的GO源码都应该存放于src文件夹下。

   注意:默认的GOPATH下的bin目录也会添加至环境变量中。

   image-20200928184659438

工程开发

   在工程开发中,推荐使用个人的Github域名来进行文件夹的命名。

   因为在Go语言中,是按照包来进行管理的,所以为了防止不同包的项目名冲突,就可以按照这种结构来组织目录。

   image-20200928184805506

编译执行

VScode工具包

   这里创建出了一个Go文件,并书写我们的第一个Go程序。

   在书写Go程序时,我们可以安装一些Go的工具包(需要先安装git)。

   首先需要设置GOPROXY,打开终端设置如下:

go env -w GOPROXY=https://goproxy.cn,direct

   打开vscodeWindows平台按下Ctrl+Shift+PMac平台按Command+Shift+P,这个时候vscode界面会弹出一个输入框,在其中输入如下命令:

Go:install/Update Tools

   然后全选,开始安装工具包。

   image-20200928193252220

   image-20200928193410164

Go编写

   接下来编写我们的第一个Go程序,命名为hello.go

package main  // 声明main包,表明这是一个可执行程序

import "fmt" // 导入内置的fmt包

func main() { // main 程序入口
	fmt.Println("hello,world!!") // 终端打印
}

go build

   go build表示将源代码编译成可执行文件。

   如下,我们将hello.go进行编译,在终端输入以下命令:

PS D:\GoLeran\src\yunya.com> go build -o hello.exe  // 将hello.go进行编译,编译的文件名为hello.exe
PS D:\GoLeran\src\yunya.com> .\hello.exe // 执行该文件
hello,world!!

   如果不使用-o,则将以上级目录名称作为编译后的文件名称。

   当然,你也可以在其他地方使用go build,后面跟上项目路径。

go install

   go install会自动进行编译,然后进行执行。

   它会将编译结果的可执行文件放在GOPATHbin目录下。

go run

   go run可以使go的源码文件立即进行执行而不进行编译。

D:\GoLeran\src\yunya.com>go run hello.go
hello,world!!

跨平台编译

   默认我们go build的可执行文件都是当前操作系统可执行的文件,如果我想在windows下编译一个Linux下可执行文件,那需要怎么做呢?

   只需要指定目标操作系统的平台和处理器架构即可,在cmd下输入以下三条命令:

SET CGO_ENABLED=0  // 禁用CGO 使用了CGO的代码是不支持跨平台编译的
SET GOOS=linux  // 目标平台是linux
SET GOARCH=amd64  // 目标处理器架构是amd64

   然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。

   Mac下编译 LinuxWindows平台 64位 可执行程序:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

   Linux下编译MacWindows平台64位可执行程序:

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

   Windows下编译Mac平台64位可执行程序:

SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build

版权声明:本文为Yunya-Cnblogs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Yunya-Cnblogs/p/13746814.html