代码里最阴险的bug,往往不是逻辑写错了,是肉眼看不见的东西在捣乱。
简单说
前阵子写脚本,从网页文档copy一段配置字符串paste进编辑器,一编译就报错。报错行我瞪了十几分钟,字符一个个对过去,看着没问题。后来整行删掉手打一遍,立刻过了。问题不在逻辑,是那串里混了个零宽空格(U+200B)。
这种字符最烦。编辑器里不显形,git diff也不标红,肉眼根本抓不到。其实你以为是算法写岔了,花几小时翻逻辑,罪魁却是个看不见的空格。零宽空格、全角空格、文件头BOM,都是常客。
我现在的处理:编辑器开显示不可见字符(VS Code搜renderControlCharacters),或者 rg -P ‘[\x{200B}\x{A0}]’ 扫一遍项目,几秒定位。从网页copy代码,先丢进记事本过一道再进项目。
Друг,这坑踩过三回,每回白耗一下午。编译器报的错,先怀疑字符,再怀疑自己。