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

令程序员费解的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

一周消息树:盘点史上最具毁灭性的软件Bug 微信公众平台设备功能支持个人开发者接入 2014中国移动开发者大调查第三批获奖名单曝光 微信企业号上线,带你看看它的真面目! OpenStack Juno版本发布——支持Spark和NFV 【十问十答】对话Go语言开发团队 苹果要求、Android开始,64位时代真的来了! MDCC 2014产品与设计论坛:带你发现产品之美 Java开发者值得关注的7款新工具 助力国产移动产品出海,UCloud部署北美节点 Zack Parker:用EC2在Cotap上打桩 用卫生棉杀敌冲关!两个高中女生的创意游戏 专访《Java程序员修炼之道》作者Ben Evans:保守的设计思想是Java的最大优势 Google收购Firebase 帮助程序员快速开发出移动App和Web App 微信支付开发关键点技术解析 游戏任玩!开源虚拟现实头戴式设备Open DoVision MDCC大会召开倒数10天 看Twitter、Facebook和国内“BAT”三大巨头最新动态 《近匠》Wijmo 5 CTO:从Web到移动,我的25年编程生涯 重复充电、防丢失!多功能智能行李箱Bluesmart 【设计经验传承】图标设计初阶要先型 “光年”光纤路由 支持千兆网络的家居中心 MDCC 2014移动开发技术与平台峰会:知名应用技术大牛传授实战经验 Unity生态圈将变?EA前总裁接替创始人任新CEO 第九届中国Linux内核开发者大会在京举办 《近匠》爱拍SDK:手游录像分享 爱拍才会赢 Mark走起!iOS开发最常用的第三方库 【CTO俱乐部读书会】《人件》译者肖然:软件工程是社会学 错过就要等一年 深圳微信开发者大会不容错过的十大理由 【干货】国外程序员整理的 C++ 资源大全 一周消息树:被投资人“送”入看守所,创业人汪洁有罪还是无罪? 聚焦五大主题 Atlassian Summit 2014精华PPT下载 关于显示窗体的问题! 贡献500分或者更多,大家大讨论!! 为什么我的硬盘灯会一闪一闪的? sql 语句 错在哪儿??? 我调试了很久 什么样程序风格才最好的? 有关计算机方面的国标大家有列表吗,只要列表呀,我在论谈上找不到呀,谁给我一份了谢了! 如何知道串口上来数据了 在线等待:Windows启动时弹出“Exception EStackOverflow in moudle ...”的错误提示而无法运行Delphi的程序,why? 请高手指点一二。 简单问题:我却搞不定:--- vc7.0里面为什么不认cos、sin等数学函数? OracleOraHome81ManagementServer服务的启动问题。 activex 发布 用C#怎样得到一个dll文件的版本号呢? 问一个比较简单的问题! 关于msgbox的简单问题,才鸟求知,谢谢帮忙!!!!! 困惑。什么工作好啊,来者有分 大哥、大姐们,快拔刀吧! 如何取得SQL SERVER2000数据库某字段的空值? 如何用split分割纵向字符串?在线等候. 关于java workshop的问题(急) 向高手请教一个问题(硬编译),至少200分相送 为什么我用request.getPathInfo()取到的结果为空? c# 版的朋友们大家好!!新手登录,多多帮助! oracle触发1器 一个好多人问过的问题,可是我这里还是不能用,请在帮下忙 发布Applet出现的错误,帮忙撒 本人在PB开发中遇到莫名其妙的问题 强烈建议成立crack专栏,同意的请跟帖。 textbox的输入问题 我的98系统在重新启动后再进入系统时屏幕上会出现一闪闪的雪花点,这是为什么呀? 请教!谁会使用这个API函数(DbiPackTable),该函数在BDE32.HLP中。 一个循环问题,急急急!! mysql -h remotehost -u root连不上对方机子? 分布式应用中的服务器端访问当地窗口的问题 打印的问题,大家请看,得到你们的思路,马上给分! 我想做一个保存图片资源的dll文件,谁有这方面的文章和代码啊? 看一下这个ServiceApp.出错信息! 有专家吗?Cache问题 那里有linux原码下栽?不全也可以? 怎么用OPENCV?(50分) winsock下载FLASH动画的错误问题 好好看看这个妞,天机不可泄漏啊,哈哈哈哈 VxD 中如何使用 sprintf 等函数?[200 分] help me !!! 急急急!!! 有关datareport的问题! 我下载了Core SDK,《windows核心编程》的示例还是编译不成功? SQL Server中定义image类型的问题? 鼠标拖拽效果 简单的问题?高分相送,UP者有分。。。。。。。。 Mount tai is such a attractive place of great interest _____everyone likes to visit .A.as B.whose C.which D.what答案给的是A 为什么 2-甲基乙烯和丙烯的区别 三氧化二铝能否吸附氢气中的水蒸气和氧气? hangzhou is an attractive place of interest ___everyone likes visit 这里填that as which 中请给出原因 求2-甲基-1-丙烯物理常数 化学污染如何危害到食品安全? it's fun to visit such a wonderful place(改为同义句) _ such a wonderful place is _.It's fun to visit such a wonderful place.(改为同义句)_ such a wonderful place is _. 氮气与氢气在高温高压和催化剂作用下会生成NH3 ,问制的的NH3是气态还是液态?已知:NH3加压下易液化 (不知道这条信息有没有用,我不好下决定)请高手指教! 马蹄形磁铁如何分辨磁极 我家用光触媒处理过了,是不是就没有甲醛了? 离心机甩料 振动我有一同事,他操作离心机比较心急,恨不得把物料一次性甩完,离心机甩料 如果物料过多,并产生 振动,对离心机有什么损坏?请各位给予指教. 怎样辨别圆形磁铁的磁极? “光触媒”在什么地方可以买到?光触媒除甲醛的效果好吗? 离心机堵料之后怎么处理 现有一个尺寸为长800宽800深400的不锈钢机箱,环境温度为零下10℃,需加热到20℃,需要多少功率的加热器.机箱带保温棉30mm 厚求计算公式~ 怎么写广告语? (灯箱、标牌、工艺品盒)(饮料瓶)(牙刷柄)由什么物质制成,有饮料瓶 聚酯材料 聚苯乙烯材料3个候选答错了,不是饮料瓶 是有机玻璃 没有磁极的磁铁,怎么辨别 镀镍工艺后还能进行抛光处理么?是否会破坏镀层,如果不抛光,那么表面粗糙度能达到什么水平呢? 什么品牌的ZR-BVV阻燃型铜芯聚氯乙烯绝缘聚氯乙烯护套电缆好? 20%的硫酸,20%的硝酸和2%的氢氟酸,需要用不锈钢加热器加热到80°左右,加热器用什么样的不锈钢材质最好不锈钢不能在80°的温度下和这三种酸发生反应 没铜打底?滚镀镍需要铜打底,但是电镀厂不给镀铜,有什么药可以代替铜得作用性吗?(滚镀拉簧得时候内部上不了镍)或者有什么办法让拉簧里面上镍,表面光泽? 选购ZCN-VV阻燃(C类)耐火铜芯聚氯乙烯绝缘聚氯乙烯护套电力电缆的话,关注哪个牌子的? 亲们好,请问5立方的水加热到38度,用什么加热器?不锈钢圆桶,直径1.8米,高2米.顶部有一40厘米的口,谢 1.They are going to visit (Guangzhou museum).括号里的部分用what place代替还有:2( Uncle Chen) is going to drive us there.括号里用who代替 有没有人会做纳米活性碳 BOD为什么可以反映某些污染物的量和污水浓度 第一盒乒乒乓球中有4个白球2个黄球,第二盒乒乓球中有3个白球3个黄球,分别从每个盒中随即地抽取1个球,求下列事件的概率:(1) 取出的两个球都是黄球;(2) 取出的两个球中有一个白球 丙烯加氯气反应?CH3-CH=CH2+Cl2不是发生取代反应生成Cl-CH2-CH=CH2+HCl吗?怎么我看到一题是说CH2Cl-CHCl-CH2Cl是由CH3-CH=CH2+Cl2和Cl2制得的,谁知道是为什么 说明文,至少500字要把假设、对比、列数字、举例子、打比方、作比较都给加进去. 有3盒乒乓球,每盒75个(只有黄,白两色).第一盒黄球和第二盒的白球同样多,第三盒的白球是第三盒乒乓球总数的五分之二,这三盒乒乓球一共有黄球多少个? 丙烯和氯气如何反应 物理的两个一样的磁铁 一个是磁铁 一个是铁棒 不用任何工具 怎么样将他们分开 源辉煌不锈钢201管生锈了怎么办我去年十月份买的源辉煌不锈钢今年都锈黑了要怎么处理.可不可以找厂家.如果可以要怎么处理.才几个月,就算处理了也还是很快就锈了.既然201那么差为什么 丙烯与氯气在光照条件下反应,最多得到几种沸点不同的有机物 两个形状大小完全相同的铁棒和磁铁不借助任何工具怎样区分它们 i visited the Bund last week.划线部分the Bund提问.请问是用what did 还是where did我的两个老师是两种答案,搞不清……谢谢 纸箱纸质KABCE如何区分 如何不借助其他工具判断磁铁的磁极 Where ______ did you visit last week?A.other B.others C.another D.else请问这道题选B不可以吗?为什么? 如何区分纸箱的纸质A=A B=B B=C C=C 几种纸板区别 加热器是利用什么制成的加热设备? I visit the university last week ____i studied A.then B which C where D that正确答案是C,为什么不选B .C 光触媒怎么么使用? 什么仪器能在火焰上直接加热 Ths is the place ______I visit last summer A,where B,which C.what 稻田光触媒怎么样,和其他光触媒比怎么样 铁在封闭的水环境中会生锈吗比如说铁暖气片.暖气片里常年满水,暖气片什么时候会生锈到漏水?那么,跟完全在在空气中和在半有水的环境中比较呢,哪个快?还有,假设铁管子里面是满水且密封 用水煮 雄黄 变成砒霜啊我看到 都说雄黄加热 会变成 砒霜 加热多少度 才会反应放在水里煮 成砒霜啊 什么纸质做纸箱好我要做一个比较结实的纸箱!什么纸比较好 啊 一小铁棒与磁铁的北极接触后哪一端变为南极? 雄黄如何变砒霜? 纸箱 上引诱SKU NO.和ITEM NO.还有纸质有A=B B=B 等是怎么区分的? 用磁铁N极在一根铁棒上沿同一方向摩擦,铁棒被磁化,则铁棒左端为什么极? Mount Wuyi is such an attractive place of interest____everyone likes to visit.为什么答案是as,不能是that或which,visit是及物动词,却宾语that和which不是也可以在定语从句中做宾语么? 我要一篇500字的有关学校环境的说明文. 什么是烟气分析采样加热器? mount wuyi is such an attractive piace of interest as everyone likes to visi为什么从句要用as 求一篇500字说明文 仪器分析问题•在法庭上,涉及到审定一种非法的药品,起诉表明该非法药品经气相色谱分析测得的保留时间在相同条件下,刚好与已知非法药品的保留时间相一致;而辨护证明有几个无毒的
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘