如下图,为什么有的Go module目录名包含叹号!这个特殊字符?

Linux终端目录列表

在Go官方文档中有提到说module路径是采用的操作系统OS的方式来识别的,但是我们不能依靠文件系统将 rsc.io/QUOTE 和 rsc.io/quote 分开。因为Windows 和 macOS 不这样做。

换句话说就是操作系统不区分目录大小写,于是Go团队就想出了一个使用!叹号替换大写字母的解决方案,具体替换方案是将大写字母替换为一个!叹号和这个大写字母对应的小写字母,比如如下截图中的Abirdcfly目录就被替换成了 !abirdcfly