说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

令程序员费解的10个语言特性

HTML文档下载 WORD文档下载 PDF文档下载
每种语言都有自己的独到之处,或奇特的语法,或不常见的函数,或非标准的执行方式。因此,不论新丁还是老手,看着某个特性会突然醉了。本文总结了10个经常被提及的“奇异”特性。

每种语言都有自己的独到之处,或奇特的语法,或不常见的函数,或非标准的执行方式。因此,不论新丁还是老手,看着某个特性会突然醉了。文中总结了10个经常被提及的“奇异”特性。


1. Javascript: + 是一个连接符

问题描述:在JS中,+ 号用在数字间,可以用作常规加法;但如果遇上字符,又可作为字符连接符。例如:’1’+ 1的结果是11。

成因分析:

根本性原因是JS属于弱类型语言。比方说Python,同样地使用+ 号作为字符连接符,但由于它是强类型语言,一旦发现一个字符与一个整数进行相加,它会提示这是个错误操作。

网友们的看法:

“问题在于这是个无法预料的强制性静默转换,很容易就忽略了。”匿名

JS应该就该情况作异常抛出处理。” crgwbr

“用+来进行字符连接简直是个噩梦。” Matteo Riva

2. Perl:模块必须返回TRUE值

问题描述:绝大多数情况下,Perl模块在结束时候,都必须以1;语句来结尾,否则,如果最后一条语句的返回值不是TRUE,系统就会报错了。

成因分析:

Perl模块中包含了初始代码和子程序。当模块文件被载入时,Perl会根据是否返回TRUE来判断代码是否成功执行。即使没有初始代码,Perl仍然期望最后的语句需返回TRUE,否则会报错。

网友们的看法:

“这个通常让我有不安的感觉。” Drew Hall

“这是最无实用价值的用法了。”Schwern

3. C/C++:三字母词用法

问题描述:

举例来说,系统看到??!会把它自动转为|,看到??(会转为[。这很容会引起造成意想不到的结果,并且会大大降低代码的可读性。

成因分析:

早期进行编程时,键盘上还不能直接打出某些特殊字符,例如大括号。因此用了这种间接的方法。

网友们的看法:

“博学如谷歌,也一定看不懂什么是??!??!” Isaac

“自1977年有了三字母词,C就变得晦涩难懂了。”Martin Beckett

4. PHP:大小写敏感处理

问题描述:

PHP对大小写处理比较混乱,有些地方区分,有些地方不区分。例如:变量名,常量名区分;函数名,方法名,类名不区分。

成因分析:

很可能是PHP从CGI脚本集发展成成熟编程语言过程中出现的人工产品。

网友们的看法:

“这是为什么PHP程序员习惯用下划线进行函数命名,而不是采取驼峰命名法的原因。”paperstreet7

“在PHP中,一切皆有可能!”Grzechooo

5. Ruby:0作为真值

问题描述:

Ruby中,0值等同于TRUE值。这对有C,Python基础的程序员来说不可不谓是一场噩梦。

成因分析:

只有布尔值FALSE和nil等价于FALSE,其余的都等同于TRUE。0与1,2,3等都会被相同对待。

网友们的看法:

“这简直是让人抓狂,虽然初衷是善意的。”Chris Lutz

“0==true!我这个C语言脑袋都快崩溃了!”Kenny

6. Python:以空格数进行层次划分

问题描述:

不同于采用关键字或标点符,PY中采用缩进层级来进行层次划分,以明确每一行代码的位置。不正确的空格数(或空格和换位符数不一致)都可能造成程序报错。

成因分析:

PY作者的意图是希望代码更为可读,减少不必要的输入,并希望程序员本身应该承担起维护代码清晰度的责任。

网友们的看法:

“由衷地说,这是使我对PY敬而远之的根本原因。”wazoox

“如果我们真的需要类似的强制机制,我们是不是真的太懒了!”Joris Meys

7. C:数组索引工作模式等同于指针

问题描述:

C中,a[i]和i[a]是可以互换的,两个写法都能得出一样的结果。

成因分析:

C中,对内存块而言,数组与指针是无差别的,就是说:

a[i] = *(a + i) = *(i + a) =i[a]。

网友们的看法:

“在C语言混乱代码比赛中,这毫无价值可言。”Confusion

“我想这正正揭露了C语言的核心,指针和更直接地与内存打交道。”Michael Neale

8. Perl’s:预定义变量

问题描述:

Perl有一份很长很长的特殊变量列表,里面的名字都是十分繁杂的(尽管有对应的长英文单词)。因此,除非是Perl资深开发人员,否则反复翻阅Perl文档是常有的事。

成因分析:

这些变量都有不同的含义,例如:进程ID($$),错误信息($@),正则表达式匹配($^R)。

网友们的看法:

“十分令人懊恼!”MatrixFrog

“对精简型开发者可能是福音。”niXar

“这些变量的问题是:无法通过谷歌查找得到!” malvim

9. JavaScript:自动分号插入

问题描述:

JS使用分号作为语句结束的标志,并且会自行插入,即使是代码断行的情况。因此会常常导致错误的出现。

成因分析:

自动化的本意是为了带来便利,特别是对新手来说。

网友们的看法:

“如果我们设计语言的特性时,老把用户看成是傻瓜,那是会出问题的。”RobVan Dam

“自动分号插入是JS最让人头疼的地方之一。”fennec

10. Java:自动装箱(autoboxing)与Integer缓存

问题描述:

Java会自动把基础类型数据转为对象(自动装箱),例如把int转为一个Integer对象。同时默认地,缓存Integer对象的取值为-128到127。这样的话,在使用==来比较两个相同取值Integer对象时会出现问题(在-128和127之内是TRUE,其余的是FALSE)

成因分析:

自动装箱机制减少了代码输入量,同时Integer缓存提升了处理速度。

网友们的看法:

“还好我只是一名C#程序员。” Will

“这不算什么错误,反而给了我们一个使用原始类型(如:booleans)进行数字处理的理由。”RaviWallau

英文出自:ITworld

阿里将推AMOS智能机 斥资10亿鼓励开发App AMPLab开发重构的Hadoop版本Tachyon:吞吐量要比HDFS高300多倍 一名理科生的创业路 十大界面原型与布局工具 Google产品经理Kenneth Norton:如何与工程师共事 如何创建自适应系统来增强用户体验 Jolla下月展示首款Sailfish手机 将重点发展中国区 海外1GB大容量游戏,国内渠道如何分发? 真正的能源大户是WiFi网络 数据中心只是“伪军” CloudFlare创始人传奇人生:7岁编程,法学博士,获哈佛商学院最高荣誉 2013云计算深入实践 jQuery 2.0发布 不再支持IE 6/7/8 Google再发力,更新Dart M4! 【多图】鼠标、光驱等13个即将消失的PC技术 直击OpenStack美国峰会:分享五大经验收获 Project Savanna:让Hadoop运行在OpenStack之上 看Go桌面技术副总,如何解读Facebook Home 增长最快的游戏公司Supercell 你学得会? 移动周报:为什么我们出不了IT神童? AWS、VMware和OpenStack谁是赢家? 消息称苹果正在寻找新任CEO取代库克 请别人云亦云 PC仍然重要且活得很好 比预想晚几年!IBM x86服务器或终将卖给联想 App推广的节操呢? iMessage垃圾短信产业链暗访 Apkudo CEO访谈:免费为Android开发者提供测试 Web API核查表:设计、测试、发布API时需思考的43件事 开源Android构建工具Buck 速度超Ant两倍 从史上八大MySQL事故中学到的经验 OpenStack Heat向应用市场更近一步 初创公司Ionic Security:云安全必须与时俱进 谷歌董事长:一年后消费者才能用上Goolge Glass 关于模板的问题,还请大家多多指点! 我用串口接受数据,可是??? 焦急中!!!vc里面的spin控件和editbox控件联系起来怎么编程? 简单任务,快来完成啊………… 有奖赏的 100分哪…… 我的程序把数据集另存为Excel时,在未关闭程序的情况下为何无法打开Excel.代码如下... 把一个html分成左右两个frame。现在需要使用scrolling的时候,好像是在一个页面里面一样。请问。可以用javascript实现吗? 关于从客户端访问Sybase数据库的问题??? 正在看《Visual Basic编程标准》,我想不管是新手还是老手,建议大家都看看!!!推荐!!!!!!!! ado+access更新数据时提示"缺少更新或刷新的键列信息"?为什么 一个有关用户对象的问题。 如何动态生成数据库? 哪位高手知位道什么在打开嵌入WORD文档时会出现激活对象出错? 关于actionlist的使用技巧 有没有哪位碰过C1853错误? 请问VC中将字符串转换为Float型有直接的函数吗? 特憋火,一早打电话去两家公司询问是否招程序员,第一句话就是什么时候毕业的,学历是?俺一回答中专,那一头就说中专不予考虑啪地电话挂 请教!delphi与winxp的关系??? 下面代码错在那里????? 请各位兄弟帮忙!!下面的一个连接老提示出错!! delphi作的Web Service,可调用时出现这种错误,请进 简单任务,快来完成啊………… 有奖赏的 100分哪…… 怀疑是字符集问题? 高手救命啊!!!怀疑是ORACLE字符集的问题, 如何通过jdbc连接SQL server2000?各位高手快帮帮忙! 如何反编绎DLL文件?只知应该是C++写的,封装的是读卡器读取的函数!详细见内! 我只有这么多了?不会让我头一次到Java里问兄弟们就不给面子哈? 哪儿有视频捕获、多播的源代码下载? 有招聘pb的吗?我使用pb已经两年了,现在在北京, javamail问题 连接ACCESS时,总是要弹出LOGIN窗口,如何去掉? DIB与DDB到底有什么区别?? delphi 怎样建数据库 (dos6.22不动一会儿硬盘就停止响应了)如何在dos下设置硬盘的电源管理。命令是什么?谢谢 《TCP-IP详解卷2:实现》的源代码在哪里下载? 如何接受这个消息呢? Not operational? 谁来推荐本关于NT或2000 服务编程方面的书籍下载地址? 请问如何编写组播路由软件 如何实现 Delphi 带参数运行? 寻找DDbgridEh控件for Delphi6,高分! 一个VFP的打印问题! 关于基于单文档应用程序的问题 怎样在Exchange Server上部署应用,拦截所有通过outlook发给该Exchange的邮件,提供一个思路也行! wolfAone (黑色的狼(WOLF))你给我进来,有消息了! 请问JAVA如何读写注册表 经典图书??? 请问一个关于窗体置前的问题 HELP!关于STRUCT的问题! 请问,怎样知道光驱里面的光盘是不是已被更换? 在Delphi如何进行包的调用,本人将无比感谢 关于exchange的几个问题? 阿尔法衰变后核内质子数改变了,那核外电子的变化是怎样呢? 质量为10kg的铁锤,从某一高度处落下后与立在地面上的木桩相碰,碰前速度大小为10m/s,碰后静止在木桩上,若铁锤与木桩的作用时间为0.1s,重力加速度取g=10.求(1)铁锤收到的平均冲力.(2)木 曾经我也疯狂过 翻译成英文帮我翻译一下啊 一个原子衰变的问题半衰期是半数原子核衰变的时间,那么剩奇数个原子(例只有一个)怎么办? 试通过估算,说明鸟类对飞机飞行的威胁.设飞鸟的质量1KG 飞机的飞行速度为500m/s 鸟与飞机相撞时 冲击力约为?答案是10的5次方为什么,谁能给我过程 英语翻译:我会为她疯狂的 含碳元素的化合物在自然界 种类最多的原因是? 243、人坐在冰车上,人与冰车的总质量为M,冰面上还有一个质量为m的弹性滑块,原来均处于静止,某一时刻坐在冰车上的人用力将滑块推向前方一个固定挡板,滑块与挡板碰撞后又被反弹回来,滑 学除英语外的哪个外语比较好 二氧化碳是自然界中存在的物质,它参与自然界的碳元素循环吗? 一个长方形铝板宽二分之一米长是宽的五分之6它的面积是多少平方米 一块长方形铝板长5分之4米,长比宽多5分之1米.一块正方形铝板的边长是10分之7米,哪一块铝板的面积大一大多少平方米? 碳在自然界的循环主要是通过下列哪种物质进行的A二氧化碳 B单质碳 C一氧化碳 D甲烷 问一下氡气的衰变是多长时间, 一块长方形铝板,长0.85米,宽0.6 一块正方形铝板边长0.72米.那一块铝板的面积大?大多少? 自然界中最硬的物质是什么?帮帮忙啊我实在没有多少钱了………………………… 放射性核素,比如碘-131半衰期是8.3天,要完全衰变玩需要多长时间,计算公式是什么 英语翻译我们偏执疯狂我们如此疯狂我们是疯子求这些句子的英文翻译主要是偏执这个词不太会 这世界怎么了用英语怎么说如题 衰变时,衰变一次就是过了一个周期对吗衰变一次,质量就减少一半对吗? 你今天上什么课的英语 在由碳酸钙和硅酸钙组成的混合物中,碳元素和硅元素的质量分数之和为12%,求混合物中钙元素的质量分数块啊,标准过程给金币 衰变周期长短与什么有关 今天我们上什么课(用英语说) 动量守衡是从牛顿运动定律中间接得到的,为什么适用于微观运动 物理题 如图所示,R1=20Ω,R2=40Ω,电源电压保持不变.(1)当S1 S2都闭合时,电流表A1的示数是0.6A.小灯泡L恰好正常发光,求电源电压和小灯泡的额定电压.(2)当S1 S2都断开时,电流表A2的示数为0.2A, 英语翻译:“它(指代某件事)让我发疯!” 由CaCO3,KHCO3组成的混合物中,碳元素的质量分数为12% ,该混合物中CaCO3,KHCO3的质量比一定是?急 原子的a衰变这是某个元素关于a粒子衰变的运动轨迹,A是a粒子的轨迹,B是某个元素的运动轨迹我的问题是a粒子是He核带正电飞出,按理说B是带负电,但是这个轨迹是带同种电荷所产生的衰变后的 核电荷是88相对原子质量是226核外电子是多少 牛顿运动定律怎样推出动量定理 原子是如何衰变的?请告诉我详细的过程.先谢谢啦! 一半径为R的各向同性均匀电介质球,其相对介电常量εr,球内均匀分布正电荷,总电荷为Q一半径为R的各向同性均匀电介质球,其相对介电常量ε r,球内均匀分布正电荷,总电荷为Q,求介质球内的电 现有一包碳酸钠跟碳酸钙混合物,用什么方法测定它们的成分含量! 原子是因为什么而衰变的? 一块长方形的铁宽是2分之1,长是宽的5分之6,这块铁的面积是多少 什么物质和水生成碳酸钙和氨气!`是由钙碳氮元素组成的!` 什么原子α衰变 什么原子β衰变 化学中相对原子质量等于核电荷数吗? 物理原子衰变232(90)Th经过一系列的a和b衰变,成为208(82)Pb,则:此过程中共损失4个中子.请用方程式加文字具体解释, 已知有CACO3和KHCO3组成的混合物中,测得O%=12%,求O% 除了英语学什么外语比较好呢? 有哪些原子的衰变速度快?假如这种原子衰变速度变慢会对氢原子和氦原 子产生影响吗?产生的影响是什么? 碳原子2s轨道的有效核电荷数为什么小于4?一个电子最多screen一个质子 所以碳原子2s轨道有效核电荷数应该大于4小于5啊 现在哪门外语比较好学而且比较好的{除了英语}我学的是涉外会计,想学一门外语,那个比较好学且比较吃香的 以后!除了英文! 原子衰变的问题是否只有放射性元素才能衰变 碳原子与某金属原子形成化合物CRx,在这个分子中各原子的电子量之和是74,则R的核电荷数和x的值分别为什么?A.16,2 B.35,4 C.17,4 D.26,3 想学英语以外的外语,哪种比较好?我读的是土木专业(大学) ①原子的核电荷数怎么样决定元素的种类. 碳原子杂化后sp2电子感受到的有效核电荷数是多少? 我想学除了英语以外的一门外语?请问我要学什么比较好? 请大家各抒己见!谢谢!请大家说出理由来!这样我才能做参考!!谢谢各位的帮助!! 元素就是具有相同核电荷数的一类原子 这句话对么? 这个世界不再有我 英语怎么说?这个世界不再有我,用英语怎么说?请不要用软件或者在线翻译.我需要准确的.在线翻译的这句也可行吗?The world no longer have I在线翻译是这样的。我在学习中。 3个无限长的同轴导体圆柱面A,B,C半径分别为R1,R2,R3,圆柱面B带电荷,AC接地,求B内表面和外表面电荷线密 下列物质中碳元素含量最高的是?A甲烷B乙烷C乙烯D苯 高一物理动量http://wenku.baidu.com/view/14a1b71aa8114431b90dd8a8.html第三题第一问,答案我有个地方不懂:答案按照能量守恒计算,动能全部转化为摩擦力做功,题目说不损失机械能,但还是应该有部分机械 疯狂的英语怎么翻译? 为什么原子衰变会放出中子不是中子不稳定吗,中子变成质子和电子啊, 以初速度v0与水平方向成60度角斜向上抛出的手榴弹,到达最高点时炸成质量为m和2m的两块,其中质量大的一块沿着原来的方向以2v0的速度飞行.求:1)质量较小的另一块弹片速度的大小和方向2) 你曾经疯狂过吗?翻译成英文!Have you ever been crazy?这我的翻译,对吗?别给我来什么在线翻译的骗子!最好叫一下对在哪,错在哪,先谢啦!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘