Go 新版1.18的安装配置以及对老项目的兼容

最近 Go 支持范型的新版本 1.18 已经发布了,那怎么在我们的电脑上安装和配置 Go 1.18 呢,以及假如我有一些非常老的都没有用 Go Modules 管理依赖的项目升级到 1.18 后能兼容吗,今天给大家一一解惑。

本期的主要涉及的内容有:

  • Go 1.18 的安装和配置

  • GOPATH 的推荐设置(是的,虽说不必须,但是我建议你设置)

  • 还在用 go vendor 的老项目怎么在 Go 1.18 下正常运行

注意上面的几个内容并不是文章的目录结构,知识点都在内容里,大家搬好小板凳仔细听讲啦~!

安装演示我是在一台没安装过 Go 的电脑上操作的,偏初学者方向,读者里肯定大部分人都会,也有更 Geek 的安装方式,坐下来当小作文看就行啦~。顺便说一下,诶嘛姨破漏的麦克真香哈。

下载安装 Go

安装包去 Go 的官网下载地址 https://go.dev/dl/ 下载对应系统的包,22年3月 最新的发行版是 1.18

3f42f6f4618ba7abb57c9c28643fbdd7.png

页面上也有其他版本供选择下载。下载完成,打开安装器一路下一步即可:

669404318247f918118dc49efb4b3f6a.png

安装器会把 Go 安装在 /user/local/go 目录

配置 go env

安装完成后,我们可以在命令行工具执行 go env 命令,看到默认的 go 环境变量:

GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE=""
GOENV=""
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE=""
GOOS="darwin"
GOPATH="/usrs/local/go"
GOROOT="/usr/local/go"
....

接下来,我们要对几个配置项进行更改,让我们能更好地使用 Go。

  • GOROOT:Go 的安装目录,这个从1.11 还是 1.12 版本后就不需要我们再自己设置,这里提醒一下。

  • GOPATH:

    • 理论上这个也可以不设置,默认是 /usr/local/go,不过我一般设置成我存放 Go 项目的目录,这样也能兼容一些没有使用 Go Modules 的老项目。虽然1.12 有了 Go Modules 后,可以把Go 项目放在任何地方,但我还是习惯统一放在/Code/Go/src 里,所以在这里执行下面的命令把 GOPATH 设置成 /Users/xxx/Code/Go。

    • go env -w GOPATH="/Users/xxx/Code/Go"

    • 那些老项目没有用 Go Modules 的话, 都是按照导入路径约定的目录存放的,比如说导入路径是 example.com/infra/pay 的项目,那么它在本地的目录就是 $GOPATH/src/example.com/infa/pay 。

另外还有一点要注意,GOMODULECACHE 即Go Modules 下载在本地的仓库缓存是 $GOPATH/pkg/mod 目录,设置 GOPATH 后会自动随之改变,个人感觉比放在默认的/usr/local/go/pkg/mod 里让人更舒服些,可能是对自己电脑的洁癖导致的。

  • GOPROXY:Go Modules 的代理地址 ,默认是 https://goproxy.io 但是国内访问较慢,设置成国内代理。

go env -w GOPROXY="https://goproxy.cn,direct"
  • GOPRIVATE:这个初学者一般用不到,如果是引用公司内网的包,可以设置成内网代码仓库的域名,指示 Go Modules 不去代理上下载,而是去这里指定的站点找包。

go env -w GOPRIVATE="code.inner-company-xxx.com"

关于怎么让Go Modules使用私有依赖模块,还有一些配置,需要的老铁点我查看

祖传艺能-- Hello World

安装完后,表演一下祖传艺能,输出个Hello World。

// hello.go
package main

import "fmt"

func main() {
 fmt.Println("Hello World!")
}

命令行切到这个文件的目录,用 go run ./hello.go能正常执行后(我还没见过执行不了的情况)就可以开始我们的Go 搬砖之旅了:)。

推荐阅读:

怎么让Go Modules使用私有依赖模块

项目改用GoModules管理依赖的方法和经验总结

资料下载

点击下方卡片关注公众号,发送特定关键字获取对应精品资料!

  • 回复「电子书」,获取入门、进阶 Go 语言必看书籍。

  • 回复「视频」,获取价值 5000 大洋的视频资料,内含实战项目(不外传)!

  • 回复「路线」,获取最新版 Go 知识图谱及学习、成长路线图。

  • 回复「面试题」,获取四哥精编的 Go 语言面试题,含解析。

  • 回复「后台」,获取后台开发必看 10 本书籍。

对了,看完文章,记得点击下方的卡片。关注我哦~ 👇👇👇

如果您的朋友也在学习 Go 语言,相信这篇文章对 TA 有帮助,欢迎转发分享给 TA,非常感谢!3b1970d390c0b4deaf8a21ba171d785a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值