邪恶的编码魔咒,你中招没?

栏目: Python · 发布时间: 6年前

内容简介:邪恶的编码魔咒,你中招没?

点击上方“ CSDN ”,选择“置顶公众号”

关键时刻,第一时间送达!

自从我观看了Gary Bernhardt所推崇的视频以后,就对某些编程语言的怪异表现着迷了。一些编程语言比其他语言有更多令人感到意外的表现。例如:有一整本关于 Java 语言的书,专门介绍它的边界类(Edge)及一些特性。相应的,对于C++语言我们可以参考它的标准规范,花上200美元即可。

下面是我最喜欢的内容,是一些令人感到惊讶、搞笑的内容,还有一些像是魔咒。一般来说,使用这些有着特殊行为的代码被认为是邪恶的,因为你的代码不应该给人带来惊讶的感觉。如果你执意要去做下面这些愚蠢行为的话,会有不少洋相等着你呢。话虽如此,知识就是力量呢,我们开始吧。

Python 2中对True进行了错误的重赋值

英文中的Two和True的发音是押韵的,但这并没什么意义。

邪恶的编码魔咒,你中招没?

幸好Python 3以来将True、False和None作为保留字后,重复赋值的做法就会产生SyntaxError这样的错误。但这样奇怪的做法远比你在其他人的标准头文件中用#define true false少得多。

Java和Python语言中不可思议的表现

对于Java程序员来说,“==”运算符的语义常常令人感到困惑。但是,即使是一些微不足道的场景,操作符的不一致性表现也会使情况变得比较复杂。即便这样做能够提升程序的执行效率。

邪恶的编码魔咒,你中招没?

在[-128,127]之间,JVM将使用同一个引用。更令人称奇的是,python语言也有同样的行为。

邪恶的编码魔咒,你中招没?

即使变成负值,结果也是一样的。

邪恶的编码魔咒,你中招没?

相同的实例代码中,python语言解释器的整数区间下限似乎是-5。在[-5, 256]范围内的整数区间的得到了相同的ID值,这样就更奇怪了。

邪恶的编码魔咒,你中招没?

似乎使用破坏性赋值会对既有规则有所改变。我不知道为什么会是这样,实际上我遇到过一个堆栈溢出的问题并试图去理解它。我的猜测是,内存中一个列表里重复的值是指向相同对象的。

C语言中的反向下标

反向的下标符让任何一位开发者都会感到头疼。

邪恶的编码魔咒,你中招没?

这种写法能够运行的原因在于array[index]实际上只是*(array + index)的语法糖。多亏还有这样可互换的性质,我们可以将数组名和其索引进行互换而得到相同的结果。

C语言中的”一直走”操作符

当第一次看到→操作符的时候,看上去似乎是语法错误。编译的时候,它看起来像是一项没有被归档的语言功能特性。不过,这些想法都是不对的。

邪恶的编码魔咒,你中招没?

操作符→实际上是两个操作符,在所举的例子中被解析为(x--)>0。众所周知,这样做在成品软件中会造成相当大的混乱,极为邪恶。

C语言中的sizeof运算符

运算符sizeof是一个编译时运算符,它提供了有趣的属性。

邪恶的编码魔咒,你中招没?

由于在编译时sizeof运算符的实例就进行了运算,那么x+=1就不会被执行。同样有趣的是:研究表明printf(“wtf?”)这行代码是最典型永远不会被推入堆栈中的情况。

Lua、Smalltalk、MATLAB以及更多语言的索引从1开始

/r/ProgrammerHumor/这个目录下有很多索引从1开始所闹的笑话。令人感到惊奇的是,事实上很多编程语言的数组索引都是从1开始的。

Ruby语言中0的值是true

……也只有 Ruby 语言。

邪恶的编码魔咒,你中招没?

修正一下:在reddit站点上有人指出,Lua、Lisp和Erlang语言也是如此。

C语言中的Trigraph、Digraph和Token

由于历史原因,在 C语言 中有那些非字母和非数字符号有其替代符。

邪恶的编码魔咒,你中招没?

邪恶的编码魔咒,你中招没?

一些国外的设备,例如IBM3270就没有提供C/C++中常用的一些符号,因此提供了那些digraph、trigraph和token,目的在于不歧视特定的字符集。

我希望这篇文章能够让您感到有趣,还可以在reddit网站上进行讨论。

原文链接:http://9tabs.com/random/2017/12/23/evil-coding-incantations.html

作者:Jekyll

译者:白云鹏

————— 推荐阅读 —————

点击图片即可阅读

邪恶的编码魔咒,你中招没?

邪恶的编码魔咒,你中招没?

邪恶的编码魔咒,你中招没?

邪恶的编码魔咒,你中招没? 邪恶的编码魔咒,你中招没?


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

看见未来

看见未来

余晨 / 浙江大学出版社 / 2015-4-15 / 59.00元

【内容简介】 这是互联网群星闪耀的时代,巨人们用最尖端的技术和自成体系的哲学改变着我们的生活,甚至影响了整个世界和人类的历史进程。在这个时代,没有人可以避开互联网的渗透。互联网早已不是简单的技术变革,人们正试图赋予其精神和内涵,以期互联网能更好地为人类所用。 本书中作者 面对面地采访了包括马克·扎克伯格、埃隆·马斯克、杨致远、凯文·凯利、克里斯·安德森、罗伯特·希勒、迈克尔·莫瑞茨、凯......一起来看看 《看见未来》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

MD5 加密
MD5 加密

MD5 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具