
说出来你可能不信,让我折腾了整整两天的罪魁祸首,就是一个**%**。对,就是那个看起来人畜无害的百分号。我在东莞这间出租屋里对着屏幕骂了十分钟,然后翻了一晚上资料,发现全网居然没个像样的说法,大家都在说“注意符号”,但没一个人把**%**的坑一次性讲清楚。先说我犯的傻。我想着“原价打八五折”,凭直觉写了个`price * 85%`——结果程序直接报语法错误。我愣了半天,才反应过来在编程语言里**%**根本就不是数学里的百分号,而是取模运算符,也就是求余数。比如`10 % 3`结果是1,因为10除以3余1。但要是写成`85%`,解释器会把它当成一个未完成的取模表达式,后面没东西,当然炸了。
正确的写法应该是`price * 0.你说气不气?一个**%**,让我在东莞三十八度的天气里开着重型空调写出来的代码,还不如一张草稿纸靠谱。更离谱的是,有些框架里**%**还能当格式化字符串的占位符,比如`"%s你好" % name`,但那又是另一种语法了。你以为你懂了,其实你只懂了一个角。真正让我崩溃过一次的是分号。我排查了三个小时,从变量作用域到异步加载,甚至怀疑是浏览器缓存。最后你猜怎么着?我在一个循环体里面多打了一个分号:`for (var i=0; i<10; i++); { // 循环体 }`那个跟在`)`后面的分号,让整个循环变成了空语句,后面的大括号成了独立的代码块,等于循环什么都没干。从那以后我养成了一个怪癖:写分号之前会停顿一下,确认它是不是真的该出现在那里。说到符号的坑,中文全角跟英文半角这个事我必须单独拎出来骂。在全角符号面前,所有编程语言的解析器都会直接翻脸。你不信?log(“hello”)`,控制台会甩你一句“Unexpected token”。更搞笑的是,很多编辑器默认不会高亮全角符号,你肉眼根本看不出区别。那之后我每次提交代码之前都会跑一遍lint工具,专门检查全角符号。我还在上专门写了一篇帖子,把常见的全角符号列表列了出来,汉字、引号、括号、逗号、句号,一个都没漏。符号这件事,说到底就是规则。编程语言不是人类语言,它不认“大概”,不认“差不多”,每一个字符都必须严格对位。我之前在东莞的创客空间教小朋友写Scratch,他们拖拽积木块的时候从来不担心符号问题,但一转到文本代码就满屏报错。有个小孩问我:“为什么我少打了一个引号,整个程序就不动了?”我告诉他,计算机就是个笨到家的大铁块,你跟它说“给我倒杯水”,它要听的是“拿起杯子,走到饮水机,按下开关……”漏掉任何一个步骤,它都原地不动。这不是小题大做,这是基础逻辑。你想让机器听你的,你就得先听机器的。说到这我想起一个更具体的例子。但我需要做数据计算,得把这个字符串转成数字。结果发现有一部分数据的**%**是全角的“%”,跟半角长得一模一样,但字符编码不同。`replace`函数只匹配了半角,全角的压根没处理。结果那些数据算出来全错了,有的甚至直接NaN。我当时一个头两个大,只能写个正则匹配两种**%**,再统一处理。这种事情你翻再多文档都学不到,只有自己踩一遍坑才能记住。所以我现在写代码但凡涉及符号,都会多留一个心眼:这个符号在不同的编码下长什么样?它是不是全角?这些问题看着琐碎,但每一个都可能让你加班到深夜。写到最后我想说,别嫌我啰嗦。01;第二,分号的位置比内容更重要,一个多余的分号能让你debug到怀疑人生;第三,全角和半角是天堑,编辑器里的语法高亮不一定能救你,最好的办法是养成用ASCII字符的习惯,写代码时把输入法切成英文模式。你要是觉得有用,可以收藏起来,或者去看看我写的其他笔记,都在那里面。东莞的天又开始热了,我准备去楼下买瓶冰水,顺便把这篇日记贴到博客上。写出来,心里舒坦多了。
飞豹物流集团有限公司官网版权所有,未经书面授权,任何单位及个人不得转载、摘编或以其它方式使用。
原神魔神任务攻略:浮世浮生挑战详解与技巧分享以下是关于原神魔神任务“浮世浮生挑战”的几个相关问题及简单解答浮世浮生挑战的是什么?浮世浮生挑战是原神中的一项魔神任务,主要任务是帮助角色完成一系列战斗与解谜挑战。玩家需要面对不同的敌人,同时还需要解决一些环境谜题。挑战的主要敌人有哪些?浮世浮生挑战中,玩家将遇到多种敌人,包括希尔克峡(Hilihurl)及其进化体、法师类敌人,以及区域特有的强敌。完成挑战的技巧有哪些?组队时,考虑到元素共鸣可以提升团队的整体输出。b. 利用环境: 战斗中,注意场地中的元素机关可以帮助快速消灭敌人,比如用水面制造超导效果。 技能冷却管理: 关键时刻合理使用角色技能,特别是大招,以便最短时间内造成最大伤害。如何提高挑战的完成效率?提前了解敌人的属性并装备相应的武器和圣遗物,可以提高效率。
