专栏首页网管叨bi叨Go 新版1.18的安装配置以及对老项目的兼容

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

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

安装器会把 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 搬砖之旅了:)。

文章分享自微信公众号:
网管叨bi叨

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:爱摸鱼的网管
原始发表时间:2022-03-28
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 解读Go语言的2021:稳定为王

    一方面,越来越多的计算需求被转移到了云端(即云计算端)。若是相关从业者,应该已经对“把程序部署到云端”习以为常了;另一方面,一些终端变得越来越智能化了。有的厂商...

    深度学习与Python
  • 层次分明井然有条,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang包管理机制(package)EP10

        Go lang使用包(package)这种概念元素来统筹代码,所有代码功能上的可调用性都定义在包这个级别,如果我们需要调用依赖,那就“导包”就行了,无论...

    用户9127725
  • 02.Go语言开发环境搭建

    Go 源码包官网下载地址为:https://golang.org/dl/(因为你知道的原因,可能无法访问)

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

        Go lang,为并发而生的静态语言,源于C语言又不拘泥于性能,高效却不流于古板,Python灵活,略输性能,Java严谨,稍逊风骚。君不见各大厂牌均纷...

    用户9127725
  • 知识分享之Golang——Golang1.18正式发布泛型到来

    知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。

    cn華少
  • go1.18新特性(翻译)

    go1.18 实现了《类型参数提案》描述的范型特性,并且保持了对老版本的向下兼容

    golangLeetcode
  • Kubernetes 1.18新版本发布,速来看新特性

    今天,我们高兴地宣布Kubernetes 1.18正式与大家见面,这也是我们2020年以来进行的首次版本发布!Kubernetes 1.18中包含38项功能增强...

    kubernetes中文社区
  • go 1.18 系列(1)- 变化说明

    第一篇是对发布的文档进行了学习,后续会针对比较重要的部分进行详细分析和学习。包括:

    solate
  • Go 1.18 发行说明(翻译)

    美国时间 2022 年 3 月 15 日,Go 团队官宣 Go 1.18 正式发布。下面让我们一起了解下 Go 1.18 为我们带来的新特性吧。

    Dabelv
  • Kubernetes 1.18新特性

    最新版本v1.18已经发布,其包含了38项功能增强,其中15项为稳定版功能、11项beta版功能以及12项alpha版功能。在本文中,我们将探索其中一些功能,希...

    陈不成i
  • docker 入门与安装

    Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括...

    付威
  • 更快、更强的Python实现:Pyston v2.0发布

    2014 年,Python 实现 Pyston 诞生。Pyston 的开发目标是开发高性能 Python 实现,使 Python 跻身 C++ 等传统系统级语言...

    机器之心
  • Go 1.18 新特性多模块工作区教程-让多模块开发变得简单

    Tutorial: Getting started with multi-module workspaces

    link1st
  • 强势回归!比 Python 快 20% 的 Pyston v2.0 来了!

    2014 年,Python 实现 Pyston 诞生。Pyston 的开发目标是开发高性能 Python 实现,使 Python 跻身 C++ 等传统系统级语言...

    小小詹同学
  • Kubernetes 集群无损升级实践

    活跃的社区和广大的用户群,使 Kubernetes 仍然保持3个月一个版本的高频发布节奏。高频的版本发布带来了更多的新功能落地和 bug 及时修复,但是线上环境...

    2020labs小助手
  • Windows下GO的开发环境配置及多工作区配置

    官网下载 或者golang中国下载 默认安装到C:\GO,使用go version查看版本:

    易墨
  • Go Modules 详解

    Go 1.11 和 Go 1.12 包含了初步的 Go Modules 支持,且计划在 2019 年 8 月发布的 Go 1.13 会在所有开发过程中默认使用 ...

    码农编程进阶笔记
  • Go Modules 详解

    Go 1.11 和 Go 1.12 包含了初步的 Go Modules 支持,且计划在 2019 年 8 月发布的 Go 1.13 会在所有开发过程中默认使用 ...

    全栈程序员站长
  • IDEA 2022.1 重磅发布!这次不追了

    点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典  罗奇奇 | OSC开源社区(ID:oschina2013) IntelliJ IDE...

    猿天地

扫码关注腾讯云开发者

领取腾讯云代金券