10大编程语言特性

 时间:2024-10-21 22:39:41

1、 Javascript: + 是一个连接符  问题描述:  在JS中,+ 号用在数字间,可以用作常规加法;但如果遇上字符,又可作为字符连接符。例如:'1'+ 1的结果是11。  成因分析:  根本性原因是JS属于弱类型语言。比方说Python,同样地使用+ 号作为字符连接符,但由于它是强类型语言,一旦发现一个字符与一个整数进行相加,它会提示这是个错误操作。  网友们的看法:  “问题在于这是个无法预料的强制性静默转换,很容易就忽略了。”匿名  “JS应该就该情况作异常抛出处理。” crgwbr  “用+来进行字符连接简直是个噩梦。” Matteo Riva

10大编程语言特性

3、 C/C++:三字母词用法  问题描述:  举例来说,系统看到??!会把它自动转为|,看到??(会转为[。这很容会引起造成意想不到的结果,并且会大大降低代码的可读性。  成因分析:  早期进行编程时,键盘上还不能直接打出某些特殊字符,例如大括号。因此用了这种间接的方法。  网友们的看法:  “博学如谷歌,也一定看不懂什么是??!??!” Isaac  “自1977年有了三字母词,C就变得晦涩难懂了。”Martin Beckett

10大编程语言特性

5、 Ruby:0作为真值  问题描述:  在Ruby中,0值等同于TRUE值。这对有C,Python基础的程序员来说不可不谓是一场噩梦。  成因分析:  只有布尔值FALSE和nil等价于FALSE,其余的都等同于TRUE。0与1,2,3等都会被相同对待。  网友们的看法:  “这简直是让人抓狂,虽然初衷是善意的。”Chris Lutz  “0==true!我这个C语言脑袋都快崩溃了!”Kenny

10大编程语言特性

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使用分号作为语句结束的标志,并且会自行插入,即使是代码断行的情况。因此会常常导致错误的出现。  成因分析:  自动化的本意是为了带来便利,特别是对新手来说。  网友们的看法:  “如果我们设计语言的特性时,老把用户看成是傻瓜,那是会出问题的。”Rob Van Dam  “自动分号插入是JS最让人头疼的地方之一。” fennec

10、 Java:自动装箱(autoboxing)与Integer缓存  问题描述:  Java会自动把基础类型数据转为对象(自动装箱),例如把int转为一个Integer对象。同时默认地,缓存Integer对象的取值为-128到127。这样的话,在使用==来比较两个相同取值Integer对象时会出现问题(在-128和127之内是TRUE,其余的是FALSE)  成因分析:  自动装箱机制减少了代码输入量,同时Integer缓存提升了处理速度。  网友们的看法:  “还好我只是一名C#程序员。” Will  “这不算什么错误,反而给了我们一个使用原始类型(如:booleans)进行数字处理的理由。”

10大编程语言特性
  • 儿童大型室内游乐设备有哪些?报价多少钱?
  • 如何培养一个人沟通能力
  • 生活 累吗?压力大吗
  • 多肉植物的养殖方法:黄丽篇
  • 怎样加工猫鱼
  • 热门搜索
    怎么查询身份证号码 炉甘石治湿疹怎么样 脚凉是怎么回事 股票成本价怎么算 罗瑞卿怎么死的 怎么可以瘦腿 怎么装电脑系统 风寒感冒怎么办 电脑fps低怎么办 作业没写完怎么办