有奖调研 | 人脸辨认功能在互联网行业认知度情况
-->
下面是我最爱好的、惊奇的、滑稽的并仍然有效的咒语集合。一般来讲,应用这些古怪的行动被视为坏事,因为代码不该该出乎料想。值得光荣的是,如不雅你测验测验以下大年夜多半蠢事,有很多代码校检对象(linters)已经预备好嘲笑你了。说了这么多,常识就是力量,那就开端吧。
Python 2 中对 True 险恶的重赋值
- >>> True = False
- >>> True
- False
- Integer a = 100;
- Integer b = 100;
- System.out.print(a == b); // prints true
- Integer c = 200;
- Integer d = 200;
- System.out.print(c == d); // prints false
谢天谢地,这在 Python 3 中会导致 SyntaxError,因为 True、False 和 None 如今是保存字。它仍远没有 C++ 的那个恶作剧那么险恶,把 #define true false 静静写进同事的开辟机械的标准头文件中。
… and>
Java 和 Python 中的诡异行动实例
对 Java 新手段度榜样员来说,== 的语义往往使仁攀困惑。甚至在眇乎小哉的情境下,这个操作符的前后抵触也会使情况变得复杂,即使机能效益是值得的。
JVM 会对区间 [-128, 127] 内的值应用雷同的引用。更奇怪的是,Python 中也有同样的行动。
- >>> x = 256
- >>> y = 256
- >>> x is y
- True
- >>> x = 257
- >>> y = 257
- >>> x is y
- False
今朝为止,还没有特别出乎料想的。
- >>> x = -5
- >>> y = -5
- >>> x is y
- True
- >>> x = -6
- >>> y = -6
- >>> x is y
- False
似乎 python 说冥器应用雷同例子的下限是……-5。区间 [-5, 256] 内的┞符数有同样的 ID。不知怎地,这变得更奇怪了。
- >>> x = -10
- >>> y = -10
- >>> x is y
- False
- >>> x, y = [-10, -10]
- >>> x is y
- True
自负年夜我看了 Gary Bernhardt 备受推许的一个视频 Wat,就惊奇于特定编程说话的怪异行动。相较于其他编程说话来说,某些编程说话的行动更出乎料想。例如,有一整本书是针对 Java 的边沿案例和古怪情况。同样,差不犊旎要 200 美元你就可以浏览 C++ 规范说清楚明了。
推荐阅读
Tip #3 console.memory 有奖调研 | 人脸辨认功能在互联网行业认知度情况写了这么多的日记之后,你可能想对它们进行组织。一个小而有效的对象是console.group()和console.groupEnd()。应用控制台组,将控>>>详细阅读
本文标题:编程语言中的一些邪恶咒语,千万不要用
地址:http://www.17bianji.com/lsqh/40727.html
1/2 1