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

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

高德LBS智能硬件编程马拉松:硬件复兴,等你挑战! 首届bong线上黑客马拉松:运动数据分析应用bong+获大奖 英特尔推出基于WebRTC的协同通讯方案 凸显本土创新“软”实力 一周消息树:不同设备不同界面的Windows 9正在逼近! 乐卓网络CEO李澄澄:移动游戏IP是把双刃剑 高性能动画!HTML5 Canvas JavaScript框架KineticJS Swift最酷炫的七大功能 微信开发者大会讲师介绍:柳峰与你一起玩转公众平台应用开发 TIOBE 2014年7月编程语言排行榜:仅发布1月,Swift进Top 20! 艾格拉斯CEO王双义:手游自研引擎的荣耀之路 以招行为例,深圳云软黄榕振谈微信公众帐号企业应用高级开发 来自前苹果高管Heidi Roizen的经验之谈 【短讯】Dropbox、微软OneDrive打不开,国内用户该如何应对? 5分钟弄懂Docker! RakNet:被OculusVR收购的跨平台游戏网络引擎 Qualcomm业务拓展副总裁沈劲:智能终端的延伸 苹果发布Xcode 6 Beta 3,Swift迎来重大更新! Linkedln技术高管Jay Kreps:Lambda架构剖析 《近匠》极光推送:聚焦巨头无法快速转身的领域 Babylon.js:拥有微软背景的开源3D游戏引擎 EMC 2014存储布局及十大新技术要点 腾讯推出零流量地图 离线实现公交步行导航 Atmel 1.4亿美元收购Newport Media 巩固物联网产品线 微信大会首批议程出炉 深度解析招行服务号是如何炼成的? 指尖上的阅读:MIT开发盲人专用设备FingerReader 从桌面到移动:异构计算翻天覆地的技术变革 《近匠》Blueware何晓阳,不做中国的New Relic 全球最杰出的14位程序员 Microsoft、RedHat、IBM、Docker等公司加入Kubernetes社区 Intel携手三星、博通等 建立物联网联盟OIC 一周消息树:微软半年内将终止对Win 7、Office 2010 SP1等产品的支持 我很喜欢delphi,但老板要我转学单片机,请兄弟们说几句,是福是祸?up、gz有分! vb的安装问题 请问如何在两个数据库之间进行联合查询? 迷 !!!!!! 天使的旁边是魔鬼 数据集排序问题 哪里有 MS viso 下载,谢! 用DATAREPORT设计报表,这个怎样设计? ASP写的计数器程序问题 天女散分:process basename 中文叫什么,进程什么名? 数据库句柄清除问题 请问我用JBuilder + weblogic61 编写的 EJB,在我拿到别的地方部署,是不是只拿 XEjb.jar和客户端 就行了? 如何让两个byte类型的变量a和b进行异或(^)操作,然后将结果存入另一个byte中? 我也来一个关于ACCESS的问题,高分请教。在线等待 CDC问题:怎样从屏幕尺寸转换到厘米呢?反之呢? VC中如何给动态产生的控件写事件方法?在线等! 》》怎么没有人解决这个问题呀,谁解决,我给分!!!!! 为什么快捷方式不能用? ★★★有没有像“delphi属性编辑框”一样的控件或是源码(100-1000分)★★★ 谁有RealPlay格式详细信息 500分求救! 请问大家那里有jrun 4下载 如何自己析构单文档模板? MASM32中标号的疑问 这个错误该如何改 关于在OUTLOOK中如何自创模板的问题? com系列丛书那里有卖 一个关于鼠标事件的简单问题 为什么我在JSP中能得到TEXT文本中的数据,却得不到在SELECT中的数据呢? 求救!为什么我的ACESS数据库文件会莫名其妙的达到25M,我还没输任何数据呢?而生成MDE后只有500K? 我要一个功能强大的弹出日历 Viva La Costa Rica! 我再也不看Chinese Team的比赛了! 如何做jar包呢?还有如何做bak呢?大家救救我吧。 《inside the c++ object model》问题 这句是什么意思??? 问一个Win2000Server域用户客户端登陆问题。 小问题:在线等待:) 如何删除一个ini文件中的关键项目?急 求救!为什么我的ACESS数据库文件会莫名其妙的达到25M,我还没输任何数据呢?而生成MDE后只有500K? 求教关于c++builder的图象预处理的源代码。50分!!还有金钱相送! access的问题 郁闷!!关于数据窗口一个奇怪的问题!! 如何实现断点续传 寻求《软驱监控程序》!!!!!!!!!!!!!!价格面议 用imp恢复数据库,要做什么准备呀? 刚才给分失败,重新散分! 关于SQLserver数据库和MDB数据库的句语问题!!! IE数据保密大全,如何禁止以下功能?菜单,工具栏,收藏夹,鼠标右键,PRINTSCREEN键,键盘快捷键 帮忙:DCOM 无法使用任何配置的协议与计算机 慨n 通信? 查询问题 请教bean中填写方法问题,高手帮忙啊!!!!! 纯牛奶是纯净物吗 从秦代到清代共经历了多少年?急.... 水里什么动物吃黄鳝 化学中牛奶是纯净物吗? 计算题:汽车在公路上匀速行驶的距离是2km ,它受到的阻力是2000N,它的牵引力是多大?牵引力做功是多少焦耳? 做黄鳝汤选用多大的黄鳝呢 公元前1046年( )伐纣灭商.建立周朝. 我的音响保险丝是1.5A的我用了5A的会怎么样 自来水里放出来的,是长鱼吗?我们喝滴是长江水. 牛奶为什么不是纯净物 电器115V,1.5A功率是多少瓦? 鳝鱼离开水为什么不死? 大约公元前1046年,周武王灭商,建立西周,至今大约多少年? 真金不怕火炼指的是金的那种性质 质量相等的HCl和NaOH反应,为什么盐酸会过量如果是36.5g,那不是NaOH过量了吗 英语翻译cang yeu cang buon~xin loi kong co tinh roi,em chuc anh hanh phuc ,vui mung!trinhvanchin 兄 还有这 chung ta phai vui mung ,hanh phuc! 比较中国农耕经济和西方海洋贸易的特点答案要具体点哦,最好有一两百字 一定质量的氢氧化钠固体,变质前后与相同质量分数的稀盐酸反应,变质前消耗盐酸的量( )变质后消耗盐酸量(填大于,小于或等于)我听不懂,这道题是初三的 英语翻译这就交给我吧这句话越南语怎么说用越南语输入甚好 真金不怕火炼,是金在高温下也不与( )反应说明金的( )性质非常真金不怕火炼,是金在高温下也不与( )反应说明金的( )性质非常稳定 六氟磷酸铵的性质 越南语谁会啊帮下忙看看chog yeu e xjn loj vj tat ca e rat yeu a va cug thuog bo me nhug e ko co cach nao khac nen e dah phaj xa a mot thoj gjan hay thu loj cho e e yeu a chog yeu cua e e yeu a 农耕经济占主导地位的文化会形成哪些特征 磷酸铵受热分解的产物是哪些 需要具体的反应方程式.哈 此虫叫啥名? “真金不怕火炼"说明了什么道理?要具体简洁,不超过20个字 把盐放到水里,有没有消毒的作用? 牛奶是不是混合物 氢氧化钙与硫酸反应方程式 什么是农耕经济 纯牛奶属于是混合物吗 硫酸铁与氢氧化钙反应方程式是不是FeSO4+Ca(OH)2+Fe(OH)2+CuSO4沉淀 “烈火见真金”、“ 真金不怕火炼”、“ 沙里淘金”,来自黄金的哪些性质? 为什么说牛乳是混合物? 周朝建立,定都镐京,又称( ),史称西周.又称什么? 玉不琢不成器 例句求 玉不琢不成器 的解释和例句 一车行驶了200m收到的阻力为648N,汽车产生的功率是72KW,求牵引力是多少 周朝定都在镐,镐是如今的什么城市,要第三单元的.最好全是选择题.长安县是如今的西安吗神仙姐姐你回答很好,不过西安更适合。 玉不琢不成器运用了什么论证方法 受到的阻力是车重的0.05倍,诺行驶100km,汽车牵引力所做的功为多少? "牛奶是一种均匀而稳定混合物"这句话对吗? 下列俗语与物质的化学性质无关的是 A火上浇油 B百炼成钢 C玉不琢不成器 D死灰复燃 用硫酸铝制取氢氧化铝为什么不用氢氧化钙 周朝兴起并定都于哪个流域 “玉不琢,不成器;人不学,还有一些相近的名句,越多越好. 氢氧化钙与氯化铜反应的离子方程式,氢氧化钙为什么要拆成离子? 谁会越南语的,快来帮下忙.我这里没一个人懂,拿着邮政的EMS单子,不知道该在哪里写,Nguyen Thanh Hai.So 7 I e duan,Cua nam,Hoan Kiem dist.Ha noi.Viet man.Tel,0913540876上面这段话可能是写的一个地址,我要照着 保险(熔断器)的电流以及电压参数保险一般都大大的标着电流、电压(例如220VF5A),那么请问,保险的耐压值在保险工作时,起到什么作用呢?换句话说,如果选择耐压值不当,会有什么安全隐患 周武王在——(今河南新乡)大败商朝军队,商朝灭亡 我国封建社会就开始出现有掌管军事的部门--兵部,最早设立兵部的是( ). 秦朝一共存在多少年? 熔融态的氢氧化钠是强电解质吗? 足量的碳酸镁和足量的碳酸钙与质量都为10g的稀盐酸反应生成二氧化碳谁的多?(不考虑碳酸镁溶于水)追问我是初中生,我认为稀盐酸质量相等所以产生二氧化碳的质量相等,因为不确定碳酸 某户进行电路旧线改造后将保险丝的规格由5A换成了8A维持路线允许同时接入用电器的功率比原来增加了( ) A1100W B1760W C660W D2860W NaCl溶液赫然熔融的NaOH哪个是电解质 秦朝先人经历多少年秦朝统一 NAOH可以和H2S反应生成什么 化学方程式. 大理石是不是电解质 烧碱是不是电解质 秦朝历经多少年秦朝历经了多少年?从哪一年到哪一年? cao caoh2 caco3中谁能与二氧化碳 水反应哪个与这两个都能反应
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘