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

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

信息来源:深圳市易捷网络科技有限公司
信息发布时间:2025-6-20
每种语言都有自己的独到之处,或奇特的语法,或不常见的函数,或非标准的执行方式。因此,不论新丁还是老手,看着某个特性会突然醉了。文中总结了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、网站被黑客攻击后对网站的影响是什么
2、网站备案需要提供什么资料建议在做网站之前进行备案
3、SEO优化能给企业带来的好处有哪些?
4、事件营销典范:服装厂商拿乔布斯象征性的圆领衫做文章
5、企业网站设计时需要注意的细节
6、怎么样打造自己优秀的个人站长网站
7、企业网站文章优化需要从哪三个方面入手
8、在网站建设中有哪些作用和意义呢?
9、网站详情页跳出率降低50%的优化方法
10、SEO优化网站的禁忌,你知道吗
11、做网站运用图片最佳的办法
12、如何简单快速的去分析一个网站
13、制作网站企业要恪守的品质标准
14、企业的网站建设时的注意事项
15、新的时代,新的SEO优化方式!
16、怎么样拷贝百度竞价推广账户
17、百度熊掌号快速秒收录的秘诀
18、写网页内容需要注意些什么
19、公司网站制作建议
20、优质营销型网站建设对企业的影响力
21、德阳网站建设都有哪些必备知识
22、 进行网站推广有哪些技巧如何做
23、面对强大的人人网 给学院SNS网站的运营思路
24、新手如何做网站seo优化
25、细节改变书写页面
26、市场上主流的网络付费推广渠道
27、怎么为自己的网站选一个好的域名
28、为什么不建议选择模板建站
29、地方门户经营流量分析
30、优化网站关键词的几点提议
31、dz论坛的内容页标题如何优化
32、如何利用竞争对手来优化网站
33、锚文本技巧掌握效果评价
34、网站优化seoer必知原则有哪些
35、网站的收录数量与权重、PR的关系
36、关于网站纯文本外链在优化中的作用
37、提高移动站在百度质量度等级技巧
38、网站建设的页面布局设计
39、深圳网站建设营销如何做才能有效果
40、Seo之网站优化者如何面对客户
41、你的网站考虑改版了吗
42、怎样通过优化网站内容提升页面权重
43、营销网站建设的核心内容是什么
44、网站建设分析门户网站的功能
45、网站运营之思维模式分析
46、重视!网站服务器不稳定带来的8个后果
47、大型网站和小型网站优化的区别与联系
48、网站建设之模板站和原创站的选择
49、巧妙运用百度分享让网站优化更加得心应手
50、中小企业如何利用网络进行营销

相关视频推荐

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