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

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

VB如何改变 NT 预设的打印机? VB如何改变 Windows 预设的打印机 VB如何关闭其他程序 VB如何过滤键盘录入 VB如何获得Windows95已经运行的时间 VB如何检测左右键同时按下? VB如何检查您的电脑是否打开 ActiveDesktop? VB如何将程序建立成“启动”文件夹的捷径? VB如何将程序建立成「启动」资料夹的捷径。 VB如何结束 Shell 所启动的程序? VB如何拦截键盘输入 如何判定VB调用的一个EXE程序已经结束. VB如何判断某一个Drive是否为光碟机? VB如何清空回收站? VB如何取得汉字的区位码 VB如何去优化你的VB程序 VB如何让点阵打印机每次印出一行? VB如何设计一个可中断循环的按钮。 VB如何实现VB程序登录密码加密 VB如何使程序不出现在任务列表中 VB如何使键盘、Mouse失效(JournalPlayBack Hook) VB如何使用 DBGrid VB如何突破 TextBox 32K 的限制? VB如何为执行程序加上参数? VB如何压缩较长的全路径文件名中的路径 (Path) 字串长度? VB如何在VB中实现密码的读取 如何在VB中使用命令行参数 VB如何在内存中的指定位置取数据? VB如何在已经存在的文本的textbox添加新的一行 VB如何在資料庫中存入單引號? VB如何正确使用VB6访问Access2000数据库 帖子结不了,在送300分~~~~~~~~~~ 请问oracle那些版本以上叫8i,常用的是哪个版本,有WINDOWS下使用的吗? 我看过的TOOLBAR 都是横着的,可是我现在想做一个竖立这的TOOLBAR 我该怎么做啊!我翻遍了 CODEGURU 可是没有一个这样的例子! 谁有什么好例子 多谢了!! error C2065: 'end1' : undeclared identifier 我怎么用CreateDialog 建立一个对话框呢! 谁有代码!!多谢!CreateDialog(hInst,LPCTSTR"ID_",hWnd,DlgProc); 送小分:怎样在一个对话框程序中产生一个HWND视窗? 在Windows 2000 Professional 下可以装VS.net吗? 关于文件上传问题 关于微软自己的控件下载问题!! 关于打包的问题 急求答案--请教高手:有关IIS与TOMCAT...... 请问有哪为知道,weblogic提供petstore例子,什么地方有详细说明?? 怎么样利用CHtmlViw将参数用POST的方式提交给WEB服务器 不明白.. 请问遇到连接错误该如何解决? pws的日志在什么地方? 在VBA中如何使用ClipBoard 哪里可以下载mastering delphi 6,或者其他有关delphi6的书籍。 vb和access的问题 C++Builder不支持tif或tiff格式怎么办? 为何我的TQuery为只读? 用Winsock传送文件如何判断一个文件已经传送完毕?(一定给分!) VC程序方法的请教。 请问如何禁用一个页面的cache 不好意思,怎么把引号赋给一个变量?thank 关于字体的保存,用序列化 关于oracle连接的一个简单问题 一个构件地址35分,快快来吧。 如何实现实时监测注册表的变化呢??????????? 如何锁定一个SQL SERVER的表? 哪里有Rose2000? MMGG Redhat7.2Ftp,硬盘安装问题求救! 请问怎样设置phpmyadmin带用户名和密码的登陆界面? 本来打算跳楼的,想想还是先来这试试...... 下面代码有什么用? 想问一下关于BDE和ADO组件的对应关系 就是这本《VC++技术内幕》……哎……我认了…… MSSQL2000 为什么我的log文件拼命往上涨 如何将用jsp得到的数据用javascript显示出来? 关于画声音波形曲线的问题.高手请帮帮忙(效果像flash加入声音时那样) TNND , 连个回复都不行 , 真恶心 (yeti_lee) 信用卡代理网站的可靠性 关于sqlserver联接问题帮一下了在线等待 小问题,高分啦!!:) 真的没有高手么,真的没人会么? 我为了使鼠标指向SpeedButton上时它的Caption颜色改变,在SpeedButtonMouseMove()和PanleMouseMove()中写了代码,但是很不敏感,鼠标移动快一点,就会有延时? 如何在Delphi5种调用windows自身的拨号网络实现点到点通过modem连接 回贴老是出错(该页无法显示。。。),试试发主贴怎么样。 哎!!!!帮帮忙吧!!!!!!! 高分求助!!!谁能告诉我在ASP下上传任意文件? 以友谊为题的作文 读了《雷锋日记》的读后感》. 雷锋日记续写600字!要写帮助别人的事迹!复制没用! 以《珍藏友谊》为题的作文600字 急用 大家帮帮我啊 哪里有读后感,雷锋日记读后感或读雷锋日记有感,雷锋故事读后感的 一篇50词的英语作文(看清楚、是英语作文、语言平常普通就可以)现在是晚上7点,根据Bob提供的信息,请描述一下Bob一家的活动情况 father read a book mother clean the room grandmother watch TV Bob do homewor 求作文《这件事真令我自豪》要求:600—700字 读雷锋日记的感受 这边风景独好 这件事令我骄傲 作文600字! 作文 友谊 两个人 写两件事 友谊的散文·作文·诗·(抒情)谢谢~ 作文:一件令我骄傲的事意义深刻题材新颖与时具进一件事体现一个道理 英语作文过度词越多越详细越好 q关于友情的散文为初二作文 我因XX而自豪 作文 600字不要我因祖国,奥运而自豪,这样的作文初二水平在线等 不要直接从网上拉,要拉也要拉好点的 我想要一篇关于“幸福广东”的英语作文,100词左右内个,我是初三的,请知道的朋友打一篇给我,不要发那么长的我是初三快要中考的人了。不要有那么多生词 雷锋日记读后感,500字以上, 求作文 令我自豪的一件事 英语写作过渡词过渡句致歉声明 上次发的时候和老妈吵了一架 心情不太好 在此表达歉意 对不起!找20个英语作文中的过渡词例如eventually finally 等等 过渡句一定要是承接上文或引起下文的句 雷锋日记 读后感500字 读了荷兰散记后怎样理解第五自然段最后一句话 《雷锋日记》4000字的读书笔记 英语作文常用句型求关于高3英语作文的好词好句,最好是能什么作文都能套的那种. 需要六篇英语文章,70词左右的. 求作文 “我和xx比辛苦” 要100字的 求一些大一期末英语作文的高级一点的可以常用的词汇和句式 围绕时事热点,1500字.最好围绕高一课本的知识点……跪求~ 帮我提供写英语作文常用的句子. 相当于每篇作文都差不多可以套用的句子,越多越好, 谢谢~ 英语作文超高级句型和词汇?(精选的)?比如:It is universally acknowledged that.there is no denying the fact that...splendid brilliant indispensable ... furthermore what"s more ..等等这些?太简单的不要,不要量,要 请帮我弄一篇有关评价低碳生活的政治论文?(800字左右)最好能告诉我论文大概的格式及写法 写一句英语作文结尾常用的句子 英语写作常用的句型自考用的请看清楚题目 给出句型 让我 XX 的经历 作文多来几篇. 读雷锋日记有感1000字 以亲情故事为话题的作文 你的xx让我记住了你作文 中国梦,我的梦2000字征文 爱是什么 作文(亲情故事) 我和xx作文 一百字左右有关友情的短文 给这篇文章起一个题目,这篇文章是有关亲情故事的一篇文章.当你感到无助时,也许家会给你一声安慰、一份鼓舞;当你在外面饱经风霜时,也许家会为你熬一碗热腾腾的汤;当你在外工作时, 以友情为题的作文的题目点评要6个以上的以“友情”为话题的作文题目,并对其中一个题目作分析、点评.如果回答迅速,我再加10分是作文的题目,不是作文。 关于友情的美文标题要好,开头要经典,选材要最好,形式新颖,结构完整,要有作者.我拿来当范文的,另外, 关于友谊的作文600字要有一件具体的事 下面这句话的含义是什么(荷兰散记中的一句话雪花落在运河旁边那一幢一幢色彩缤纷的小屋上,纵然是黑夜,也处处闪着晶莹的光芒.那种美丽,是安恬又宁静的. 雷锋日记续写500字 作文 写友谊的一件事友谊是金.友谊使快乐倍增,使忧愁减半.友谊可以解除别人的痛苦……你是怎么理解友谊的?相信你也有关于友谊的亲身经历,选择一件令你印象最深的一件事写出来. 帮我把这篇英语文章压缩小一点,希望在70到90词之间My favourite computer game is called“NEED FOR SPEED CARBON”.It is an interesting and exciting game.The main character is called“Fire GT1”.He is a handsome young man.In this g 续写雷锋日记100字雷锋在军队里有人和他做对吗 高中五句话英语作文常用句型要附上例句和中文意思,用法 生命作文 求 续写雷锋日记1000字 求我和我的好朋友作文 生命是什么?(作文) 续写雷锋日记400字 风景这边独好的作文 600字 有关自然风光的 求一篇100字的英语短文,以日常生活内容!哪们帮帮忙,写一篇不少于100这的英语短文,要求有一般现在时,过去时,一般将来时等时态.简单介始关于自己日常生活为内容! 生命像什么作文 求英语作文常用过渡词 出彩的句子等等 现在25分作文一般只能拿17分.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn