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

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

直接Mark!开源的DevOps开发工具箱 Apache Mesos联合创始人Benjamin Hindman:谈分布式应用现状 直觉不靠谱!使用移动应用分析的七个巧妙方法 屏蔽、挖角与丑闻,Uber的“创收神器”泡沫 蚁视科技发布会:三大产品与四大概念技术 盘点VS2015 预览版的5个新特性 低能的“智能” 你就是明星,第一届IBM RockStar正式启动! Kubernetes:Google分布式容器技术初体验 方法可以复制 AngularJS资源集合 那些年,微信走过的开放之路 从YunOS话阿里移动互联网云生态布局 Mobile First!苹果联合IBM发布10款企业级App iOS8.1.1越狱又惹急苹果!扒一扒黑客与苹果的斗争史! Firefox.html:用HTML重现Firefox UI Qt 5.4正式发布!引入WP,支持HTML5混合开发 2014智能硬件盘点第二弹!这次咱走暖心的 聚合数据资产,推动产业创新——2014中关村大数据日看大数据变现 拥抱开源:微软Windows 10宣布全面支持AllJoyn技术 改变App领域发展!友盟推“数据工场”战略,两款新品亮相 Cloudera正式登陆中国市场:与英特尔携手共助本土企业淘金大数据 Go 1.4正式发布 支持Android开发 【特别提醒】2014中国大数据技术大会门票全面告罄 不接受现场购票 累计4000万美元 Qualcomm在华投资5家公司 支持Android、WatchKit开发,全新RubyMotion 3面世! 快速开发移动医疗App!开源框架mHealhDroid 2014CVW﹒产业互联网大会解密未来20年 Nimble VR的收购与一封来自友商的感言 Google Earth API将在2015年12月彻底关闭 AR、美颜、机器人:计算机视觉库几乎无所不在 不激增,无爆收,年度最佳手游为80 Days带来了什么? 长整数除法的算法?? 关于Java Plug-in和Applet的一个问题 请求推荐有关SDK的好书!!!!!!! 我受不了了 个人主页链接如何让鼠标变成手形?谢谢! 老话题:三层结构中blob字段的存取出问题了? run-time类是怎么回事? 当多个程序对同一个文件进行读写操作,如何防止同时写入造成混乱? 求银行家算法的c程序! 请问W2K下面鼠标阴影的效果是用哪个API实现的? 我提议有编程经验的朋友们,一起来研究一种真正符合我们实际开发工作的模板 我用上kylix了!!!!!!! 请教,关于NT域用户的问题!NT账号,怎么设定唯一性呀?比如有aa的用户,我用aa登陆后,别人不能用aa同时登陆了?应该在那儿设置呀? Mfm1992?是个什么东西呀! 如何在informix/esql c中使用大事物? 如何保存收下來的email呢???!!!!! 关于一个网站建设的问题,望高手指点。 求救;如何建立一个登陆页面? 谁能给出一个远程访问互联网ACCESS数据库的经典代码?有28分送上! 怎样将-个十六进制数转换为十进制? 如何将java程序编译成dll文件 cannot focus a disabled or invisible window 一表我想通过文本框来增加记录,为何不能发送到表中,不要告诉我是没有post的原因。 奇怪,borland的开发能力这么强,为什么几乎没有一个象office那样流行的应用软件呢?如果它的应用软件很多,就不会象现在这样穷了吧? Delphi 数据库不如Power Builder 吗? 请问怎么安装新的控件? B样条曲线:如何由经过点反算控制点? Berzer曲线:如何由经过点反算控制点? 关于activereport的字符集问题 有没有计算曲线长度和交点的好方法? Install Shield For VC6怎么用???????????????????? ODBC数据库 ****有没有计算曲线长度和交点的好方法? ****Berzer曲线:如何由经过点反算控制点? ****B样条曲线:如何由经过点反算控制点? 有谁知道"边缘频率"、"中间频率"、"双频分析" 请问oicq登陆以后的住界面的我的蚝油dock是如何实现的,是什么vcl,或者自己写,如何实现?请指点! pfc的好处? 一个伪程序员的自白 不但给分,还给¥ 散分给喝过酒兄弟姐妹们(今天心情很不好,我深爱的人不爱我,苦痛,郁闷,多喝了几坛,请ghj1976、3B、roani谅解,最后一坛酒,感谢水园的朋友们) 怎样准备高程考试,还有三个月! 人生自古谁无错 -- 对青年时代的林仙儿心理活动的分析 小的大三,放暑假了,现在上海找一个单位实习,各位知情者请告知,定重谢! 请问如何让我做的程序一直在最底层呢、?? Oracle的外键是否能让所有有关联的表一起改变? 创建子窗口,子窗口又创建子窗口,在创建子子窗口时如何释放子窗口? 几个问题,能解决吗? 简单C语言字符串问题 (***** InterBase 6 的中文字段名问题 *****) vb6.0界面主页链接如何让鼠标变成手形?谢谢! 推荐一些简单的英文歌曲,适合学英语的.要好听一点的,最好是安静一点的.本人英语不太好~不要太慢的、想my love的速度差不多. 初中英语完形填空Two men were ( 1 ) in a very wild and lonely part of America.( 2 )days they had not even seen a huose,only a few huts made( 3) wood.Then one day they met an old Indian.They found that he knew their language.One of 怎样能提高英语听力、完形、阅读理解的能力?我现在已经是高二下学期了, 我从三年级起就没学过英语,我现在初二,我这个暑假学英语,我该怎么学 完形填空我是一名初中生,英语就觉得背单词和完形填空好难,特别是里面有很多生单词,请问应该怎样克服这道障碍呢? 如何做英语的完形填空和阅读理解和听力 七年级英语上典中点Unit11标准测试卷单项选择,完形填空阅读理解答案.感谢!别说要再买一本什么的.也别说什么自己努力.答得好再加50分 再次谢谢了! 有的时候遇到不会做的总会觉得很烦怎么保持平静的心态去做 另外希望把初二初三的重点词组稍微罗列下 我英语一般,听力听的不太好,阅读理解做的也不行,完形填空还能说的过去.怎样才能提高英语成绩呢? 人教版七年级英语完形填空和阅读理解谁能给我一些题啊 one day,Mr.smith 1 out for a walk in the street.he 2 about a maths problem.he 3 to work it out.just then he 4 a blackboard in front of him.he 5 to write the problem with a chalk on it.then the blackboard 6 a little.Mr.smith moved with it.but the blac 英语听力不好该怎么吧!阅读理解怎么提高? 阅读理解与完形填空练习题 英语NBA is the most famous basketball game in the world.There ① a Chinese players in this game.His name is Yao Ming.He is ② player in this game.In his spare time,Yao ③ cars.On last Christmas, 英语初中阅读理解、完形填空各5则求英语初中七年级上学期starter水平阅读理解、完形填空各5则,要适当有一些难度.如果答案很好将适当加分,注意迅速.另外,其实不是starter的也行,超教材 怎样做英语听力题 提高英语听力 关于英语的完形填空和阅读理解题考英语的时候有一毛病,基础可以一点不错,但是完形和阅读我就惨了啊!各位提提做这些阅读题的方法吧! 有没有初中的阅读理解和完形填空啊? 英语翻译听力有最低分吗,听说保底份有95,是不是、急710份的新四级在线等待 完形填空练习书浙教版英语九年级完形填空的练习书有什么比较好的可以推荐的?英语基础还是不错的,但是完形方面不是很好。还有就是选词填空的练习书。推荐好的话我会再给分的;另 我现在初三,做阅读和完形的时候,有好多句子看不懂,选答案时特别纠结,不知道选什么好,最后卷子发下来阅读和完形扣了好多分,我不想在中考的时候英语会拉分啊! 英语翻译 请推荐一本专门练完形填空和首字母的初中练习书和英语字帖.如果没有此类专门书籍,英语阅读练习类书籍也可.英语字帖不要练连笔的,最好说下出版社,毕竟重名的是有的. 怎样做好初中完型填空和阅读理解 我英语四级 快速阅读对了7个,听力17个,仔细阅读5个,完形15个,选词填空3个,翻译2个,作文OK,请问能过 高中英语阅读理解和完形填空练习书哪个好 Different people speak different languages,but 1 have a language of their own .Anyone can play.A player’s native(本国的)language is not 2 .A football player from Japan can play with a player from England.One does not3 to understand the langrage 快速阅读10中7,听力30中25,选词填空中10中1,阅读10中5,完形填空20中6,翻译5中3,作文一般般,有希望过四级吗 哪种高中完形填空的练习书是15个空的?英语完形填空 初中完型填空You cannot see (1) feel it when it is a part of the air.The water in the seas,rivers and lakes is liquid(液体).The water in the air is not a liquid (2) a gas.Clouds are made of water.They may be made of very small drops of water.w 四级快速阅读对了5个听力对了17个,选词对了5个,阅读理解对了8个,完形9个.作文8~9分翻译1个能过吗? 英语题目(完形填空2道)1.I know it takes a (l ) more time.2.You can start your journey when you (w )to,and you don't (n ) to get to the station. 初中英语完型填空怎么才能做好? 英语翻译 ——速求“Happy Fourthe of July!"Garrett loves to hear theae words.The Fourthe of July s his favourite h____.It celebrates when America won freedom from from England.It h____ on the fourthe day of July.Every year,Garrett's family goea to the big 如何作好初中英语的完形填空 怎样做好英语考卷的完形填空和选词填空? 英语完形填空一道~He decided to ( ) a holiday in an excellent hotel in a big town.A.spend B.have 怎样做好初中英语完形填空做好初中英语完形填空,使错误最少,有啥诀窍吗? 怎样做好英语的选词填空?不是完形填空! I'm Tina.It's my birthday today.A_______of my friends come to my party.It's a very e_______party.(总归是填好的) 英语四级 阅读理解里的选词填空和完形填空哪个分值多?大谢大谢! 英语完形选词填空.Jim Green is an announcer for the program.Most of the girls①boys like the program.They②like Jim Green.Some of them often make phone calls to him and thank him③his work.There are lots of④to him every day too.Jim Green (首字母已给)Thomas Edison was one of the greatest American i___. 英语(选词填空,阅读理解):1.(also ,as well)Mr green can_______sing the song in chinese.She is the teacher and the singer______.2.她与她的朋友们相处很融洽.She_____ _____ _____ _____ _____her friends.(共有5个空格)3.父母 怎么提高英语完形填空和选词填空 帮我解决2个问题:1个是完形填空,1个是根据首字母提示完成短文,完形填空:Tom is an ___ boy.He’s twelve ____He’s two years ____ than his brother,Jim.Tom is 150 cmand Jim is160 cm.Jim is 50 kilos and Tom is 60 kilos.Tom (初中英语)选词填空.谢! 英语完型填空选择 Passage 2Mick was one of the main foods for people long before history was written.Maybe 1 will remain an important food as long as there are 2 that give milk.The old word “ milk” 3 Sanskirt(梵文),one of the oldest 4 kn 问一下怎么才能把英语的阅读理解和完形做好(具体的练习方法) 小学英语完形填空(首字母完形填空)Romeo and Juliet is one of Shakespeare's most famous p_____. 2.The biggest distiction b_____ the two versions is that the new one is written by the public. 3.The specific plot is provided by 选词填空. 暑假应当怎么学英语,我是新初三. 初中英语完形填空 1篇The gir got up on the horse.It was a brown__1__ white horse.It was big horse.She__2__on the horse's back.She was taller than her father.She looked__3__ at her father."Daddy,you are shorter than __4__' she said.Her daddy s manage depend burn know art 1.There is going to be a talk on fine ____ this afternoon.2.The secrets between the two girls were _____ except themselves.3.To be _____ is a very important character of a person.4.Winning the competition led her first int 暑假学英语,广州哪里去? 初中英语一道完形填空. 选词适当形式填空1~6题初中英语 学英语有什么好方法(关于做听力、完形填空、阅读理解之类的题)今年6月份就要中考了.在英语方面,初一的时候感觉还没什么,但到了初三后,就感觉像完形填空、阅读理解之类的题有些困 一道初中英语的完型填空On the first day of school, the new teacher had a look at the list. The students’ names were written on it. 1 pleased the teacher was! Guess what she found?After each 2 name was a number, such as 138, 140, 154 a 求初中英语选词填空答案( 1 )well ,soft,second ,better ,may ,strongly,afraid,sand ,stay up,if,now,house We can’t stop an earthquake(地震),but we can do things to make sure they don’t destroy(毁坏) whole cities.First,it is not a 1 .__
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn