深圳易捷网络科技注册咨询网-jiujiuya.com.cn 返回首页

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

信息来源:深圳市易捷网络科技有限公司
信息发布时间:2025-5-4
每种语言都有自己的独到之处,或奇特的语法,或不常见的函数,或非标准的执行方式。因此,不论新丁还是老手,看着某个特性会突然醉了。文中总结了10个经常被提及的“奇异”特性。
1.Javascript:+是一个连接符
问题描述:在JS中,+号用在数字间,可以用作常规加法;但如果遇上字符,又可作为字符连接符。例如:’1’+1的结果是11。
成因分析:
根本性原因是JS属于弱类型语言。比方说Python,同样地使用+号作为字符连接符,但由于它是强类型语言,一旦发现一个字符与一个整数进行相加,它会提示这是个错误操作。
网友们的看法:
“问题在于这是个无法预料的强制性静默转换,很容易就忽略了。”匿名
“JS应该就该情况作异常抛出处理。”crgwbr
“用+来进行字符连接简直是个噩梦。”MatteoRiva
2.Perl:模块必须返回TRUE值
问题描述:绝大多数情况下,Perl模块在结束时候,都必须以1;语句来结尾,否则,如果最后一条语句的返回值不是TRUE,系统就会报错了。
成因分析:
Perl模块中包含了初始代码和子程序。当模块文件被载入时,Perl会根据是否返回TRUE来判断代码是否成功执行。即使没有初始代码,Perl仍然期望最后的语句需返回TRUE,否则会报错。
网友们的看法:
“这个通常让我有不安的感觉。”DrewHall
“这是最无实用价值的用法了。”Schwern
3.C/C++:三字母词用法
问题描述:
举例来说,系统看到??!会把它自动转为|,看到??(会转为[。这很容会引起造成意想不到的结果,并且会大大降低代码的可读性。
成因分析:
早期进行编程时,键盘上还不能直接打出某些特殊字符,例如大括号。因此用了这种间接的方法。
网友们的看法:
“博学如谷歌,也一定看不懂什么是??!??!”Isaac
“自1977年有了三字母词,C就变得晦涩难懂了。”MartinBeckett
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等都会被相同对待。
网友们的看法:
“这简直是让人抓狂,虽然初衷是善意的。”ChrisLutz
“0==true!我这个C语言脑袋都快崩溃了!”Kenny
6.Python:以空格数进行层次划分
问题描述:
不同于采用关键字或标点符,PY中采用缩进层级来进行层次划分,以明确每一行代码的位置。不正确的空格数(或空格和换位符数不一致)都可能造成程序报错。
成因分析:
PY作者的意图是希望代码更为可读,减少不必要的输入,并希望程序员本身应该承担起维护代码清晰度的责任。
网友们的看法:
“由衷地说,这是使我对PY敬而远之的根本原因。”wazoox
“如果我们真的需要类似的强制机制,我们是不是真的太懒了!”JorisMeys
7.C:数组索引工作模式等同于指针
问题描述:
在C中,a和i[a]是可以互换的,两个写法都能得出一样的结果。
成因分析:
在C中,对内存块而言,数组与指针是无差别的,就是说:
a=*(a+i)=*(i+a)=i[a]。
网友们的看法:
“在C语言混乱代码比赛中,这毫无价值可言。”Confusion
“我想这正正揭露了C语言的核心,指针和更直接地与内存打交道。”MichaelNeale
8.Perl’s:预定义变量
问题描述:
Perl有一份很长很长的特殊变量列表,里面的名字都是十分繁杂的(尽管有对应的长英文单词)。因此,除非是Perl资深开发人员,否则反复翻阅Perl文档是常有的事。
成因分析:
这些变量都有不同的含义,例如:进程ID($$),错误信息($@),正则表达式匹配($^R)。
网友们的看法:
“十分令人懊恼!”MatrixFrog
“对精简型开发者可能是福音。”niXar
“这些变量的问题是:无法通过谷歌查找得到!”malvim
9.JavaScript:自动分号插入
问题描述:
JS使用分号作为语句结束的标志,并且会自行插入,即使是代码断行的情况。因此会常常导致错误的出现。
成因分析:
自动化的本意是为了带来便利,特别是对新手来说。
网友们的看法:
“如果我们设计语言的特性时,老把用户看成是傻瓜,那是会出问题的。”RobVanDam
“自动分号插入是JS最让人头疼的地方之一。”fennec
10.Java:自动装箱(autoboxing)与Integer缓存
问题描述:
Java会自动把基础类型数据转为对象(自动装箱),例如把int转为一个Integer对象。同时默认地,缓存Integer对象的取值为-128到127。这样的话,在使用==来比较两个相同取值Integer对象时会出现问题(在-128和127之内是TRUE,其余的是FALSE)
成因分析:
自动装箱机制减少了代码输入量,同时Integer缓存提升了处理速度。
网友们的看法:
“还好我只是一名C#程序员。”Will
“这不算什么错误,反而给了我们一个使用原始类型(如:booleans)进行数字处理的理由。”RaviWallau
英文出自:ITworld企业网站建设常见问题

相关行业资讯

1、站长如何选择适合自己的cms程序-深圳网站建设公司
2、企业网站改版,你不知道的几个小秘密
3、网站建设应该考虑的问题
4、推广优化讲究思维的探索
5、分析百度右侧知心展现办法
6、单页网站优化的技巧和操作方法
7、网站架构团队会议如何实施
8、在404页面附带flash小游戏,减少网站跳出率
9、如何选择、购买合适的域名?
10、做家教网站可以赚钱吗
11、做网站建设前需要考虑什么问题?
12、高质量的网站文章标题怎么写
13、网站设计怎样定位网站建设
14、移动手机端网站制作时应用到这些必不可少
15、京东九年亏损188亿,为什么没倒闭
16、这些常见的企业网站建设的功能需求
17、浅谈如何增加网站高质量的外链
18、域名在哪里购买怎么购买
19、企业网站建设跳出率多少合适呢超过这个线就需要好好做反省了
20、企业网站制作做到这几点比别人领先一步
21、如何提高seo优化用户网站的体验?
22、怎么应对网站建设中的需求变更,需求变更应该怎么做
23、网站制作,纯静态页面和伪静态页面有何区别
24、企业要做seo优化推广必须了解这些问题
25、资阳网站建设之服务器云安全的使用技巧
26、应该怎样提高个人网站的竟争力
27、掉进这6个陷阱,可能会毁了你的原型设计!
28、SEO优化网络推广有什么好处和特点呢?
29、企业该如何面对做网站成本问题
30、seo网站怎样挖掘并筛选高端客户
31、深圳网络公司的困境:如何扩展客户
32、SEO优化的核心技术是什么?
33、网站建设如何选择靠谱的运营商
34、让你的电子商务站点优化更轻松的方法
35、判断网站优化哪些对搜索引擎不利的?
36、站长,你的网站运营还是坚持最初的方向吗
37、网站URL目录优化解决方案
38、定义测试
39、网站为什么别人转载自己的内容后排名会更高?
40、网站关键字优化关键词上首页第4名
41、网站编辑需要考虑SEO问题吗
42、做个家教网站要多少钱
43、网站站内权重如何传递
44、能吸引人的网站建设主页应该怎么做?
45、如何增加网站流量以及用户转化率
46、常见的网络营销思路有哪些要注意的地方?
47、Xenu:全站死链接检查工具的详细介绍
48、做网站成功的基础是找一个好的网站设计公司
49、网站建设对于企业发展的重要性有哪些
50、让图片替你的网站“说话

相关视频推荐

自动化行业网站制作焊锡机/点胶机/螺丝机网站
企业网站制作新模式全部仅需800元/年
如何提高企叫网站打开速度
公司网站到期了该怎小续费
企业为什么必须要做一网站
企业网站的导航栏一般要规划哪些栏目
国际物流FBA物流网站建设深圳易捷网站公司公司
银制品金银器网站建设深圳易捷网站公司
包装印刷行业网站设计
膜结构公司网站设计
工商财务公司网站设计
购买一个域名需要多少钱
企业网站建设云虚拟主机需要多少钱
财务公言的网站怎么做才能显示在搜索引擎的首页
网站建设一站式服务
深圳网站建设公司网站排行榜
深圳市易捷网络科技有限公司版权所有    粤ICP备2022153140号