现象
最近在新电脑安装go环境,发现 golang 包名如果有汉字就不能编译运行。
具体来讲,就是
go mod tidy
报错 ‘invalid char’
但是,我在以前的电脑上运行
go mod tidy
没有问题
原因
我对比了 go sdk 版本,旧电脑用 go 1.13,新电脑用 go 1.18,看起来是 go sdk 的影响。
解决方法
- 方案一,把中文包名全部改成英文
- 方案二,使用较老版本的sdk
我采用方案二,新电脑安装老版本的 sdk。
不是不愿意用英文,是因为有的代码是看书或者视频积累的学习资料,用中文反而便于管理。
总之,老的代码就不动了,新的包名尽量翻译成英文,同时降级 go sdk。
go sdk 下载地址
All releases
经过验证:go 1.13 到 1.15 支持中文包名,1.16 开始不支持。
我在官方找到sdk的升级记录,想找到能够兼容中文包名的办法,毕竟日本、韩国等非英文国家的用户也会遇到类似问题,官方或许提供了兼容方式。
但是目前我还没找到,聪明的你如果有相关信息,麻烦评论区分享一下。
希望本文对你有帮助,全文完。
版权声明:本文为qq_42747210原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。