兔起鹘落全端涵盖,Go lang1.18入门精炼教程,由白丁入鸿儒,全平台(Sublime 4)Go lang开发环境搭建EP00

简介: Go lang,为并发而生的静态语言,源于C语言又不拘泥于效率,高效却不流于古板,Python灵活,略输性能,Java严谨,稍逊风骚。君不见各大厂牌均纷纷使用Go lang对自己的高并发业务进行重构,原因无他,经济下行的大背景之下,性能突出、效率拉满的Go lang无疑是高并发场景下节约服务器资源的一剂灵药。

Go lang,为并发而生的静态语言,源于C语言又不拘泥于效率,高效却不流于古板,Python灵活,略输性能,Java严谨,稍逊风骚。君不见各大厂牌均纷纷使用Go lang对自己的高并发业务进行重构,原因无他,经济下行的大背景之下,性能突出、效率拉满的Go lang无疑是高并发场景下节约服务器资源的一剂灵药。

与时俱进,顺应潮流,本次我们乘着市场的东风,在各大主流平台(Win/Mac/Linux/Docker)安装并搭建Go lang1.18的开发环境,短时间内做到能够在任何一款开发机或者服务器上输出Go lang的全部功力,如臂使指,挥洒自如。

Windows11平台

首先来到市场占有率最高的Win11系统,前往Go lang官网 https://go.dev/dl/ 下载win平台下的64位安装包:

Microsoft Windows  
Windows 7 or later, Intel 64-bit processor  
go1.18.5.windows-amd64.msi (130MB)

选择安装目录后,直接点击安装即可。

安装完毕之后,首先输入“win+R”,打开终端。然后在里面输入命令:control system。在打开的系统信息界面中,选择左侧菜单的“高级系统设置”。随后在打开的“系统属性”窗口选择下方的“环境变量”选项。最后在打开的环境变量中,检查系统是否将Go lang的安装目录"c:/go/bin"配置到了环境变量里,如果已经配置了,在终端中键入命令:

go version

系统返回:

C:\Users\liuyue>go version  
go version go1.18.5 windows/amd64

说明Go lang1.18版本已经在系统中安装成功。

Mac平台

接着来到Mac系统,Mac系统一般会包含两套架构,分别是:搭载Intel芯片的x86架构系统,和搭载M系列芯片的ARM架构系统。

首先打开终端,键入如下命令:

uname -m

如果返回:

arm64

说明是ARM架构系统,反之:

x86

则是Intel芯片的x86架构系统。

前往Go lang官网 https://go.dev/dl/ ARM架构系统下载:

Apple macOS (ARM64)  
macOS 11 or later, Apple 64-bit processor  
go1.18.5.darwin-arm64.pkg (132MB)

X86架构系统下载:

Apple macOS (x86-64)  
macOS 10.13 or later, Intel 64-bit processor  
go1.18.5.darwin-amd64.pkg (138MB)

下载之后,双击进行安装即可。

区别于Windows平台,我们还可以使用更加灵活的方式安装配置Go lang1.18,那就是鼎鼎有名的Homebrew。

Homebrew是一款自由及开放源代码的软件包管理系统,用以简化macOS系统上的软件安装过程,最初由马克斯·霍威尔写成。因其可扩展性得到了一致好评,而在Ruby on Rails社区广为人知。 Homebrew使用GitHub,通过用户的贡献扩大对软件包的支持,同样也支持Go lang生态环境。

首先安装Homebrew:

/bin/zsh -c "$(curl -fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)”

随后运行命令清理缓存和更新版本:

brew cleanup && brew update

接着运行命令进行go lang1.18的安装操作:

brew install go

接着会进行下载安装操作:

brew install go                           
==> Downloading https://ghcr.io/v2/homebrew/core/go/manifests/1.18.5  
Already downloaded: /Users/liuyue/Library/Caches/Homebrew/downloads/819fc08bdc0ecafc9713bdfd76a9e6901172c0b2c0cdde0dd482a0b37ba008fd--go-1.18.5.bottle_manifest.json  
==> Downloading https://ghcr.io/v2/homebrew/core/go/blobs/sha256:4f80cc29d711ddc5038f6b4684fe31674df01284aaa611480  
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:4f80cc29d711ddc5038f6b4684fe3  
######################################################################## 100.0%  
==> Pouring go--1.18.5.arm64_monterey.bottle.tar.gz  
????  /opt/homebrew/Cellar/go/1.18.5: 11,990 files, 596.2MB  
==> Running `brew cleanup go`...  
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.  
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

由于诸位可以理解的原因,这里建议大家用学术的方式连接互联网从而获取更快的下载速度。

最后执行命令清理安装包缓存:

brew cleanup go

接着键入命令就可以查看go lang具体的安装目录:

brew list go     
/opt/homebrew/Cellar/go/1.18.5/bin/go  
/opt/homebrew/Cellar/go/1.18.5/bin/gofmt  
/opt/homebrew/Cellar/go/1.18.5/libexec/api/ (22 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/bin/ (2 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/doc/ (5 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/lib/ (3 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/misc/ (393 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/pkg/ (695 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/src/ (7786 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/test/ (3071 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/ (6 files)

在终端键入命令:

go version

系统返回:

➜  ~ go version  
go version go1.18.5 darwin/arm64

这里建议使用Homebrew来安装Go lang,brew会根据当前系统架构来自动选择不同系统架构的编译版本来进行安装。

Ubuntu/Centos

首先删除 /usr/local/go 目录,根据官网说明,如果之前有安装过 go,那么需要将该位置的 go 目录删除掉 :

sudo rm -rf /usr/local/go

接着下载安装并安装:

# 下载安装包  
$ wget https://golang.google.cn/dl/go1.18.linux-amd64.tar.gz  
# 解压 golang 到 /usr/local 下  
$ sudo tar xzvf go1.18.linux-amd64.tar.gz -C /usr/local

最后设置环境变量:

# 修改 $HOME/.profile 或 /etc/profile 文件  
# 这里可能会出现权限不足(ubuntu需要加sudo, centos需要切换成root权限)  
$ sudo vim /etc/profile  
# 在该文件最后一行插入(进入后,按 i键进入编辑模式)  
$ export PATH=$PATH:/usr/local/go/bin  
# 按 esc 退出编辑模式, 按 :wq 保存文件  
$ go version

系统返回:

go version go1.18 linux/amd64

Docker容器搭建

如果我们不希望go lang在系统中留下些许的痕迹,Docker也可以帮我们快速搭建开发环境,关于Docker的安装,请移玉步至:一寸宕机一寸血,十万容器十万兵|Win10/Mac系统下基于Kubernetes(k8s)搭建Gunicorn+Flask高可用Web集群

首先建立环境文件夹:

mkdir mygo  
cd mygo

随后创建测试脚本hello.go:

package main  
  
func main() {  
    println("hello go1.18")  
}

接着创建Docker镜像打包文件Dockerfile:

FROM golang:alpine  
  
WORKDIR /build  
  
COPY hello.go .  
  
RUN go build -o hello hello.go  
  
CMD ["./hello"]

这里的创建逻辑是基础镜像选择alpine,容器内创建build编译文件夹,将hello.go拷贝到build目录下,随后运行容器内的go编译器对脚本进行打包,最后运行打包后的可执行文件。

运行命令打包镜像:

docker build -t go .

随后系统自动下载基础镜像并且编译:

Sending build context to Docker daemon  3.072kB  
Step 1/5 : FROM golang:alpine  
 ---> 15115d36d05e  
Step 2/5 : WORKDIR /build  
 ---> Using cache  
 ---> 09ea4177a5f7  
Step 3/5 : COPY hello.go .  
 ---> 20ff0208e342  
Step 4/5 : RUN go build -o hello hello.go  
 ---> Running in c03d13c80c36  
Removing intermediate container c03d13c80c36  
 ---> c41673d8b447  
Step 5/5 : CMD ["./hello"]  
 ---> Running in 8f74af4426cf  
Removing intermediate container 8f74af4426cf  
 ---> caf626888641  
Successfully built caf626888641  
Successfully tagged go:latest

查看镜像明细:

docker images

返回明细:

[root@instance-7dojaq0e mygo]# docker images  
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE  
go           latest    caf626888641   43 minutes ago   329MB  
golang       alpine    15115d36d05e   15 hours ago     328MB

运行docker命令启动容器:

docker run -it --rm go

系统返回:

hello go1.18

至此,Docker搭建go lang1.18环境就完成了。

Sublime 4 for Go lang

编写Go lang代码也可以选择轻量编辑器Sublime,是的,一律千篇的Goland多多少少有点审美疲劳,关于Sublime 4的安装,请移步:轻盈潇洒卓然不群,敏捷编辑器Sublime text 4中文配置Python3开发运行代码环境(Win11+M1 mac)这里不再赘述。

打开Sublime 4,使用组合键:

control + shift + p

如果是mac平台,键入:

cmd + shift + p

在弹出的命令行中选择:Install Package

然后输入:Golang Build 按回车安装

安装成功后,配置go lang安装路径:

首选项 -> package settings -> Golang Config -> Settings - Uesrs

{  
    "PATH": "C:/Go/bin",  
    "GOPATH": "C:/Go"  
}

紧接着配置go mod,go mod是Go语言的包管理工具,官方推荐使用,有了它就不再受GOPATH的限制,可以在任何目录初始化项目,打开命令行,键入命令:

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

然后在Sublime 4中新建一个hello.go文件:

package main  
  
import "fmt"  
  
func main() {  
  
    fmt.Println("hello go1.18")  
}

接着使用快捷键 control + b 或者 control + shift + b 选择go run编译器运行代码,Mac系统用cmd替换control,如图所示:

随后继续安装代码补全插件,键入:control + shift + p 并输入:Install Package

输入:Golang Tools Integration 回车进行安装

重启Sublime 4。

随后即可在代码中进行补全操作:

至此,开发编辑器就配置好了。

诚然,如果累了,不想折腾,使用微软的vscode配合code runner和go插件直接起飞也是可以的,简单直接,方便好用。

结语

不同于Python或者是Ruby,Go lang不是系统预装的基础语言,所以配置起来相对独立,不需要考虑与系统版本冲突问题。与此同时,Golang还支持交叉编译功能,即在Windows平台可以将代码编译成Linux平台可执行的文件,对于Windows平台用户来说,这无疑是一个重大利好。

相关文章
|
9天前
|
监控 算法 Go
Golang深入浅出之-Go语言中的服务熔断、降级与限流策略
【5月更文挑战第4天】本文探讨了分布式系统中保障稳定性的重要策略:服务熔断、降级和限流。服务熔断通过快速失败和暂停故障服务调用来保护系统;服务降级在压力大时提供有限功能以保持整体可用性;限流控制访问频率,防止过载。文中列举了常见问题、解决方案,并提供了Go语言实现示例。合理应用这些策略能增强系统韧性和可用性。
67 0
|
7天前
|
前端开发 Unix Linux
Sublime Text 3配置 Python 开发环境
【5月更文挑战第7天】本篇 Huazie 介绍了 Sublime Text 3 配置 Python 开发环境的相关内容,感兴趣的朋友赶紧配置起来,有任何问题可以随时评论区沟通。
29 1
Sublime Text 3配置 Python 开发环境
|
9天前
|
开发框架 前端开发 C#
Sublime Text 3配置 C# 开发环境
【5月更文挑战第2天】本篇 Huazie 介绍了 Sublime Text 3 配置 C# 的相关内容,感兴趣的朋友赶紧配置起来,有任何问题可以随时评论区沟通。
63447 7
Sublime Text 3配置 C# 开发环境
|
9天前
|
分布式计算 Java Go
Golang深入浅出之-Go语言中的分布式计算框架Apache Beam
【5月更文挑战第6天】Apache Beam是一个统一的编程模型,适用于批处理和流处理,主要支持Java和Python,但也提供实验性的Go SDK。Go SDK的基本概念包括`PTransform`、`PCollection`和`Pipeline`。在使用中,需注意类型转换、窗口和触发器配置、资源管理和错误处理。尽管Go SDK文档有限,生态系统尚不成熟,且性能可能不高,但它仍为分布式计算提供了可移植的解决方案。通过理解和掌握Beam模型,开发者能编写高效的数据处理程序。
142 1
|
9天前
|
缓存 测试技术 持续交付
Golang深入浅出之-Go语言中的持续集成与持续部署(CI/CD)
【5月更文挑战第5天】本文介绍了Go语言项目中的CI/CD实践,包括持续集成与持续部署的基础知识,常见问题及解决策略。测试覆盖不足、版本不一致和构建时间过长是主要问题,可通过全面测试、统一依赖管理和利用缓存优化。文中还提供了使用GitHub Actions进行自动化测试和部署的示例,强调了持续优化CI/CD流程以适应项目需求的重要性。
57 1
|
9天前
|
Kubernetes Cloud Native Go
Golang深入浅出之-Go语言中的云原生开发:Kubernetes与Docker
【5月更文挑战第5天】本文探讨了Go语言在云原生开发中的应用,特别是在Kubernetes和Docker中的使用。Docker利用Go语言的性能和跨平台能力编写Dockerfile和构建镜像。Kubernetes,主要由Go语言编写,提供了方便的客户端库与集群交互。文章列举了Dockerfile编写、Kubernetes资源定义和服务发现的常见问题及解决方案,并给出了Go语言构建Docker镜像和与Kubernetes交互的代码示例。通过掌握这些技巧,开发者能更高效地进行云原生应用开发。
63 1
|
9天前
|
负载均衡 监控 Go
Golang深入浅出之-Go语言中的服务网格(Service Mesh)原理与应用
【5月更文挑战第5天】服务网格是处理服务间通信的基础设施层,常由数据平面(代理,如Envoy)和控制平面(管理配置)组成。本文讨论了服务发现、负载均衡和追踪等常见问题及其解决方案,并展示了使用Go语言实现Envoy sidecar配置的例子,强调Go语言在构建服务网格中的优势。服务网格能提升微服务的管理和可观测性,正确应对问题能构建更健壮的分布式系统。
31 1
|
9天前
|
消息中间件 Go API
Golang深入浅出之-Go语言中的微服务架构设计与实践
【5月更文挑战第4天】本文探讨了Go语言在微服务架构中的应用,强调了单一职责、标准化API、服务自治和容错设计等原则。同时,指出了过度拆分、服务通信复杂性、数据一致性和部署复杂性等常见问题,并提出了DDD拆分、使用成熟框架、事件驱动和配置管理与CI/CD的解决方案。文中还提供了使用Gin构建HTTP服务和gRPC进行服务间通信的示例。
34 0
|
9天前
|
Prometheus 监控 Cloud Native
Golang深入浅出之-Go语言中的分布式追踪与监控系统集成
【5月更文挑战第4天】本文探讨了Go语言中分布式追踪与监控的重要性,包括追踪的三个核心组件和监控系统集成。常见问题有追踪数据丢失、性能开销和监控指标不当。解决策略涉及使用OpenTracing或OpenTelemetry协议、采样策略以及聚焦关键指标。文中提供了OpenTelemetry和Prometheus的Go代码示例,强调全面可观测性对微服务架构的意义,并提示选择合适工具和策略以确保系统稳定高效。
149 5
|
9天前
|
负载均衡 算法 Go
Golang深入浅出之-Go语言中的服务注册与发现机制
【5月更文挑战第4天】本文探讨了Go语言中服务注册与发现的关键原理和实践,包括服务注册、心跳机制、一致性问题和负载均衡策略。示例代码演示了使用Consul进行服务注册和客户端发现服务的实现。在实际应用中,需要解决心跳失效、注册信息一致性和服务负载均衡等问题,以确保微服务架构的稳定性和效率。
23 3