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

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

信息来源:深圳市易捷网络科技有限公司
信息发布时间:2024/12/23
每种语言都有自己的独到之处,或奇特的语法,或不常见的函数,或非标准的执行方式。因此,不论新丁还是老手,看着某个特性会突然醉了。文中总结了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、网站建设中10个容易被忽视的设计误区
2、网站内容体系打造贵在内容价值和站长坚持
3、在做网站宣传方面有哪些行之有效的做法
4、网站间链接的实际意义和考虑因素
5、网站建设关于网站运营不成功的原因分析
6、怎样创建自己的网站
7、搜索眼中的好站与我们眼中的好站对比
8、如何诊断自己的网站
9、seo优化的方案以及外链如何发布
10、推广优化每天一贴:Google蜂鸟算法有意思的FAO
11、网站降权后应该如何做好网站运营工作
12、提高网站被抓取几率的技巧
13、百度知道怎么做网络推广?
14、对话凤凰新媒体CEO刘爽:微博持久度仍然有待观察
15、山东泰安网站建设之网站改版
16、医疗行业优化的忌讳
17、互联网营销必不可少的几个部分
18、SEO是思维还是技术
19、我们的网站要怎么才能安全快速的访问呢
20、分享站内站外优化推广优化技巧
21、经常更新文章对网站优化的作用有多大
22、想做好网站seo优化要学会坚持!
23、软文的高质量究竟体现在何处?
24、网站应加强个性化建设提升SEO优化效果分析!
25、深圳网站建设—双线路与EDNS域名智能解析如何操作
26、浅谈网站建设、网络营销、网络推广、推广优化之间的关系
27、网站推荐系统分析:推荐系统绝对不会向你推荐什么
28、网站建设中,如何优化视觉效果
29、个人站长是继续坚持还是放弃
30、把网站建设关键词设置好,排名简单上
31、深圳做网站的公司可以免费做LOGO吗
32、误导用户必死:拒绝标题党
33、网页设计中色彩有哪些作用
34、百度上周末大更新之后网站外链减少的原因分析
35、如何设计网站边框能突出网页设计条理性
36、快照又神奇穿越了,你怎么看
37、网站细节设计决定推广优化成败
38、网站建设方面的导航怎样做才算合理的呢
39、SEO人员频繁检查排名是否会受到惩罚?
40、河南网站建设—常见的网站类型都有哪些
41、手机网站建设对网站实时进行监控
42、做网站seo优化也要从客户的视觉体验入手
43、如何利用网站目录推广网站
44、百度新动向:举报采集站URL有奖
45、提升排名做好长尾关键词的技巧工作
46、如何做好原创文章
47、推荐式外链在推广优化中的效果提升
48、网站SEO优化怎样做不会过时打动用户的心
49、为什么说关键词是百度竞价的核心
50、企业制作网站这么做将不负众望

相关视频推荐

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