1.Golang 开始之路

本文详细介绍了Golang的安装过程,包括Windows和Linux平台,并讲解了GOROOT、GOPATH、GO111MODULE和GOPROXY的设置。接着,通过创建并编译第一个'Hello World'程序,解释了`go build`和`go install`命令的使用,以及如何进行跨平台编译。推荐使用VS Code作为Go开发编辑器,并提供了安装与配置的步骤。
摘要由CSDN通过智能技术生成

目录

1.Golang 开始之路

1.1 windows 快速安装 Golang

1.2 linux 下安装

1.3 GOROOT和GOPATH

1.4 GO111MODULE

1.5 GOPROXY

1.6 Go 开发编辑器

2. 第一个 Go 程序

2.1 Hello World

2.2 Go build

2.3 Go install

2.4 跨平台编译


1.Golang 开始之路

在开始之前不得不认识一下Go的创始人

go-author

1.1 windows 快速安装 Golang

打开golang 官网进行安装

进入官网,我们点击Download go

Download-go

选择我们想要的 go 语言版本进行下载 (这边使用go 1.16.3)

select-go-version

1.2 linux 下安装

如果不是要在Linux平台敲go代码就不需要在Linux平台安装Go,我们开发机上写好的go代码只需要跨平台编译(详见文章末尾的跨平台编译)好之后就可以拷贝到Linux服务器上运行了,这也是go程序跨平台易部署的优势。

我们在版本选择页面选择并下载好go1.16.3.linux-amd64.tar.gz文件:

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

将下载好的文件解压到/usr/local目录下:

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

如果提示没有权限,加上sudo以root用户的身份再运行。执行完就可以在/usr/local/下看到go目录了。

配置环境变量: 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.16.3 linux/amd64

1.3 GOROOT和GOPATH

GOROOTGOPATH 都是环境变量,其中 GOROOT 是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为 GOPATH 设置一个默认目录,参见下表。

GOPATH在不同操作系统平台上的默认值

平台GOPATH默认值举例
Windows%USERPROFILE%/goC:\Users\用户名\go
Unix$HOME/go/home/用户名/go

1.4 GO111MODULE

go modules 是 golang 1.11 新加的特性

GO111MODULE 有三个值:off, on和auto(默认值)。

GO111MODULE=off,无模块支持,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。 GO111MODULE=on,模块支持,go命令行会使用modules,而一点也不会去GOPATH目录下查找。 GO111MODULE=auto,默认值(go 1.16开始默认值为on),go命令行将会根据当前目录来决定是否启用module功能。

这种情况下可以分为两种情形: 1.当前目录在GOPATH/src之外且该目录包含go.mod文件,开启模块支持。 2.当前文件在包含go.mod文件的目录下面

在使用模块时,GOPATH是无意义的,不过它还是会把下载的依赖存储在$GOPATH/pkg/mod 中,也会把go install 的结果放在 $GOPATH/bin 中。

当modules 功能启用时,依赖包的存放位置变更为$GOPATH/pkg,允许同一个package多个版本并存,且多个项目可以共享缓存的module。

可以执行下面的命令修改GO111MODULE

go env -w GO111MODULE=on

1.5 GOPROXY

Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。(网上有些教程适用于1.11版本之前。)

默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到https://proxy.golang.org,所以我们需要换一个PROXY,这里推荐使用https://goproxy.iohttps://goproxy.cn

可以执行下面的命令修改GOPROXY:

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

1.6 Go 开发编辑器

Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,这里推荐使用VS CodeGolandVS Code是微软开源的编辑器,而Goland是jetbrains出品的付费IDE。

我们这里使用VS Code 加插件做为go语言的开发工具。

VS Code介绍

VS Code全称Visual Studio Code,是微软公司开源的一款免费现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,支持 Win、Mac 以及 Linux平台。

虽然不如某些IDE功能强大,但是它添加Go扩展插件后已经足够胜任我们日常的Go开发。

下载与安装

VS Code官方下载地址:https://code.visualstudio.com/Download

三大主流平台都支持,请根据自己的电脑平台选择对应的安装包。

双击下载好的安装文件,双击安装即可。

配置

安装中文简体插件

点击左侧菜单栏最后一项管理扩展,在搜索框中输入chinese ,选中结果列表第一项,点击install安装。

安装完毕后右下角会提示重启VS Code,重启之后你的VS Code就显示中文啦!

vscode-chinese

安装go扩展

现在我们要为我们的VS Code编辑器安装Go扩展插件,让它支持Go语言开发。

vscode-go

2. 第一个 Go 程序

2.1 Hello World

现在我们来创建第一个Go项目——hello。在我们桌面创建一个hello目录。

在该目录中创建一个main.go文件:

package main  // 声明 main 包,表明当前是一个可执行程序
​
import "fmt"  // 导入内置 fmt 包
​
func main(){  // main函数,是程序执行的入口
    fmt.Println("Hello World!")  // 在终端打印 Hello World!
}

2.2 Go build

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

在hello目录下执行:

go build

或者在其他目录执行以下命令:

go build hello

go编译器会去 GOPATH的src目录下查找你要编译的hello项目

编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是windows平台会在当前目录下找到hello.exe可执行文件。

可在终端直接执行该hello.exe文件:

c:\desktop\hello>hello.exe
Hello World!

我们还可以使用-o参数来指定编译后得到的可执行文件的名字。

go build -o heiheihei.exe

2.3 Go install

go install表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATH的bin目录下。因为我们的环境变量中配置了GOPATH下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。

2.4 跨平台编译

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

只需要指定目标操作系统的平台和处理器架构即可:

go env -w CGO_ENABLED=0  // 禁用CGO
go env -w GOOS=linux  // 目标平台是linux
go env -w GOARCH=amd64  // 目标处理器架构是amd64

使用了cgo的代码是不支持跨平台编译的

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

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

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

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

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

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

go env -w CGO_ENABLED=0
go env -w GOOS=darwin
go env -w GOARCH=amd64
go build

两个重要的环境变量 GOOSGOARCH,其中 GOOS 指的是目标操作系统 , GOARCH 指的是目标处理器的架构。

下面可以通过命令 go tool dist list列出可用组合

go tool dist list

aix/ppc64

android/386

android/amd64

android/arm

android/arm64

darwin/amd64

darwin/arm64

dragonfly/amd64

freebsd/386

freebsd/amd64

freebsd/arm

freebsd/arm64

illumos/amd64

ios/amd64

ios/arm64

js/wasm

linux/386

linux/amd64

linux/arm

linux/arm64

linux/mips

linux/mips64

linux/mips64le

linux/mipsle

linux/ppc64

linux/ppc64le

linux/riscv64

linux/s390x

netbsd/386

netbsd/amd64

netbsd/arm

netbsd/arm64

openbsd/386

openbsd/amd64

openbsd/arm

openbsd/arm64

openbsd/mips64

plan9/386

plan9/amd64

plan9/arm

solaris/amd64

windows/386

windows/amd64

windows/arm

现在,开启你的Go语言学习之旅吧。人生苦短,let’s Go.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值