不同版本的 go 如何快速切换?

2023-03-04 03:14:43 +08:00
 yagamil

主要主力语言不是 go ,平时开发的没有用到最新的。 然后 github 拉下来的要求 go1.18 或者更高,那么我有什么办法建一个 go 更高版本? 可以在旧版和新版之间来回切换。

2907 次点击
所在节点    Go 编程语言
13 条回复
laizenan
2023-03-04 05:11:19 +08:00
zzyphp111
2023-03-04 08:52:39 +08:00
在 mac 中建议 brew 来切量很方便,快捷,所有版本可以秒切

brew install go@1.18
brew link go@1.18

go env

不用了直接再:
brew unlink go@1.18

列出来的内容全是你期望的。
foam
2023-03-04 08:55:20 +08:00
我用的 gvm 。还不错
sunwei0325
2023-03-04 09:42:27 +08:00
https://go.dev/doc/manage-install

go install golang.org/dl/go1.18@latest
go1.18 download
go1.18 version
houshuu
2023-03-04 10:10:06 +08:00
goland 自带管理的, 我现在都直接直接用 goland 下载旧版本, 新版本用 brew 保持更新
chaleaochexist
2023-03-04 10:51:19 +08:00
其实不需要切换.
go 向前兼容
直接下载最新版本
用 go.mod 约定就可以了.

和 java 类似.
yagamil
2023-03-04 11:16:31 +08:00
@chaleaochexist 旧版的用的 go path 管理的好像会有很多问题吧?
hhjswf
2023-03-04 12:42:31 +08:00
什么,这玩意不向下兼容吗
skywalkerfc
2023-03-04 13:06:59 +08:00
现在用的,感觉还是蛮方便的 https://github.com/owenthereal/goup
starck
2023-03-04 14:48:30 +08:00
@sunwei0325 正解
hopingtop
2023-03-04 20:29:59 +08:00
楼上有说向下兼容的朋友,使用最新版本并不是一个好的方案。
需要考虑一个问题:
假设项目是 go mod 1.17
然后你使用了 go 1.19 的版本使用了一个 1.19 的方法 比如 url.JoinPath(). 那么在你的环境使用完全没有问题,别人使用就会有问题(这个问题当然可以借助自动构建检查出来)。

所以涉及到更改的,最好是与 go mod 的版本一致,避免不必要的麻烦。
yangchnet
2023-03-04 21:27:02 +08:00
asdf
voidmnwzp
2023-03-07 14:12:34 +08:00
用 goland 切

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/920991

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX