关于学习 go 语言不解之处请教各位大佬

2024-06-19 08:40:54 +08:00
 Just4L

鉴于当前形势,加之对云原生技术的爱好,所以想从用一些云原生组件到开发一些 operator ,这就要用到 go 语言了。 所以想请教一下大佬们,现在开发 go 语言,都用什么版本比较好啊,就像 java 的话 java8 用的人比较多一样,go 有这个说法么? 另外有啥好的学习资料可以推荐么? 抱拳.jpg

5954 次点击
所在节点    Go 编程语言
50 条回复
wwqgtxx
2024-06-20 17:02:29 +08:00
@Seves 这么说也确实没问题,我这边的实测是 1.21.3 编译出来的 386/amd64 产物均可以在 win7 64bit 下正常运行,去除#34 提到的指定 commit 的 go1.21 和 go1.22 也都可以在 win7 64bit 下正常运行
至于 32 位系统下为何不行,但是在 64 位系统下 wow64 可以的问题我没有深入测试过,能找到的资料也非常有限,一直没人深究到底是哪个 commit 的改动引发了这个不兼容
lysShub
2024-06-20 17:58:00 +08:00
@Seves 我现在就有个 1.22 的跑在 Windows Server 2012 上
wwqgtxx
2024-06-22 09:25:05 +08:00
@Seves #38 我手动装了一下 win7 32 位版本的系统,和你的版本一样也是 7601 ,但是我安装了 kb4474419 ,之后运行 golang1.21 版本编译出来的文件一切正常,你也可以测试一下我 patch 后的 1.22 编译出来的二进制兼容性如何
https://github.com/MetaCubeX/mihomo/releases/download/v1.18.5/mihomo-windows-386-v1.18.5.zip
UxwVI042kEc5pNx6
2024-06-22 13:55:38 +08:00
@wwqgtxx #43 也报错,但报的是另一个 dll 没有找到:

wwqgtxx
2024-06-22 16:20:59 +08:00
@Seves 你这个报错感觉是系统有很多补丁没打吧,能看一下你系统上 C:\Windows\System32\advapi32.dll 的详细信息么
wwqgtxx
2024-06-22 16:36:46 +08:00
@Seves #44 我再次重新安装了一次 win7 ,在没有安装 kb4474419 的时候出现了和你一样的报错,安装后即可正常启动了
https://www.catalog.update.microsoft.com/search.aspx?q=kb4474419
实际上很多非 golang 程序的安装也必须要建立在安装 kb4474419 之后(如 vmtools ),具体原因还需要探究
UxwVI042kEc5pNx6
2024-06-22 17:42:40 +08:00
@wwqgtxx #46 我最后安装的补丁是 KB2534111 ,安装 KB4474419 后确实可以运行了。🤙🤙🤙
nextvay
2024-06-22 18:25:29 +08:00
1.8 以上吧,泛型 挺好的,适合封装些小工具
wwqgtxx
2024-06-22 19:04:33 +08:00
@Seves 找到原因了
https://github.com/golang/go/commit/a17d959debdb04cd550016a3501dd09d50cd62e7
根据 msdn 文档:
Windows 7 、Windows Server 2008 R2 、Windows Vista 和 Windows Server 2008:LOAD_LIBRARY_SEARCH_标志在安装了 KB2533623 的系统上可用。 若要确定标志是否可用,请使用 GetProcAddress 获取 AddDllDirectory 、RemoveDllDirectory 或 SetDefaultDllDirectories 函数的地址。 如果 GetProcAddress 成功,LOAD_LIBRARY_SEARCH_ 标志可以与 LoadLibraryEx 一起使用。
所以在缺乏补丁的 win7 上就会出现找不到系统 dll 的问题
kevinpendragon
2024-06-27 10:14:23 +08:00
版本别太老比如 1.9 这种,1.11 之后的区别不是很大

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

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

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

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

© 2021 V2EX