首页 后端开发 php教程 盘点编程语言中的十大奇怪特征

盘点编程语言中的十大奇怪特征

Nov 26, 2016 am 09:43 AM

 每一种编程语言都有它独自的“怪癖”,比如奇怪的语法、与众不同的功能或是不符标准的实现方法。程序员也都有着自己的习惯,这就会使得很多程序员,甚至是一些经验丰富的开发者,在面对一门新的语言时都会感到抓狂。这些语言的特征有时会成为程序员的绊脚石,也有的时候程序员会慢慢理解这些特点,逐渐适应和喜欢上它们。虽然所有语言的特征不计其数,但程序员总是在讨论的就没有那么多了,我们在这篇文章中列出了最让程序员疯狂的编程语言中的10大奇怪特征。

1. JavaScript中‘+’是一个连接运算符

奇怪特征:在JavaScript中,‘+’是被重载的运算符,既是数字间的加号(+),又是字符串间的连接符。如果在一个‘+’运算中,其中一个操作数是字符串,JavaScript就会把另一个操作数转换为字符串,此时‘+’是一个连接运算符,所以‘1’+ 1的结果就是‘11’。 
 

原因分析:这个问题的根本原因还是在于JavaScript是弱类型语言。但是像Python,虽然‘+’也是字符串间的连接运算符,但Python是强类型语言,当程序员想要把字符串和整数加在一起时,程序是会报错的。
 

2. Perl中一个类必须要返回TRUE

奇怪特征:Perl语言中的类很多时候都是以return 1语句结束的,因为如果类中最后的语句不返回一个TURE值,就会产生错误。
原因分析:Perl中的类可以包含一些初始化的工作和子程序。当文件加载完毕,Perl通过寻找一个TRUE的返回值,开始检查程序是否成功执行。即使类中没有初始化代码部分,Perl也预期类的最后会返回TRUE值,否则抛出异常。

3. C和C++中的三字符组

奇怪特征:C和C++支持9个三字符组,它会在后续的处理前把三字符组转换为一个单一的字符,比如‘??!’会被转为/,这样的结果就会使源代码更加难读,有时还会出现意外的问题。
原因分析:三字符组起初是用来帮助早期的C程序员打出一些在键盘中没有的字符,比如花括号。
 

4. PHP中大小写不敏感

奇怪特征:在很多编程语言中的标识符都是大小写敏感的,但在PHP的函数和类名中,大小写是不敏感的。这还好,但最让程序员困惑的是PHP的变量名、常量和类属性却是大小写敏感的。
原因分析:最有可能的是,PHP是由CGI脚本逐步发展成熟的编程语言。
 

5. Ruby中的0表示TURE

奇怪特征:在Ruby中,0值代表TRUE,这和C、Python等其他语言是完全相反的,在这些语言中0代表的是FALSE,这也让很多新学习Ruby的开发者大为困惑。
原因分析:Ruby当中只有bool值FALSE和nil等于FALSE,其它所有的都是TRUE,0就和其他的数字是一样的。

6. 在Python中用空格来分“块”

奇怪特征:既不使用标点符号,也不使用关键字,Python使用独特的缩进级别来判断某一行代码是属于哪部分的。错误数量的空格或混用了空格和Tab键,都会产生错误。
原因分析:这可能和Python为了产生可读性更好的代码,减少打字有关,而且现在很多的代码编辑器都是支持自动缩进的。
 

7. C语言中数组下标就像是在做指针运算

奇怪特征:C语言中的指针,除了把i当做数组a中的下标,表示为a[i],C还允许把同样的元素表示为i[a]。
原因分析:C语言中,数组就像是内存中的指针,所以有a[i] = *(a+i) = *(i+a) = i[a]。
 

8. Perl中预先定义的变量

奇怪特征:Perl有着一长串的特殊变量,它们都有着容易混淆的名字。对于那些非Perl专家,他们都需要常常查询Perl文档才能明白这些代码的含义。
原因分析:这些变量通常都是在提供一些程序执行方面的信息,比如进程ID($$),错误消息($@),正则表达式的匹配($^R)。
 

9. JavaScript自动插入分号

奇怪特征:JavaScript中把使用分号作为一个语句的结束只是当做一种选择,是因为它会自动插入分号,比如在换行符后。但这通常会在没有异常抛出时产生错误。


原因分析:插入分号是为了方便,让程序员,尤其是新手程序员觉得JavaScript的语法非常容易。
 

10. Java中有Integer参与的类型转换

奇怪特征:Java会自动把原始类型转换为对象,比如把int类型转为Integer对象,默认Integer对象的值是从-128到127。这在使用‘==’比较两个有相同值的Integer时会产生问题(只有在-128-127时返回TRUE,其余返回FALSE)。
原因分析:这样转换会减少程序员的代码量,提高性能。


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1419
52
Laravel 教程
1313
25
PHP教程
1262
29
C# 教程
1236
24
华为仓颉编程语言官方入门教程发布,一文看懂如何获取通用版本 SDK 华为仓颉编程语言官方入门教程发布,一文看懂如何获取通用版本 SDK Jun 25, 2024 am 08:05 AM

本站6月24日消息,在6月21日HDC2024华为开发者大会主题演讲上,华为终端BG软件部总裁龚体正式官宣了华为自研仓颉编程语言。该语言历经5年研发沉淀,现已开启开发者预览。华为开发者官网现已推出仓颉编程语言官方入门教程视频,方便开发者初步上手理解。该教程将带用户体验仓颉、学习仓颉、应用仓颉,包括用仓颉语言估算圆周率、计算2024年各月的干支纪法、看到二叉树在仓颉语言中的N种表达方式,以及用枚举类型实现代数计算、用接口和扩展实现信号系统模拟,还有用仓颉宏扩展出新语法等等。本站附教程访问地址:ht

历经 5 年研发沉淀,华为下一代编程语言'仓颉”正式开启预览 历经 5 年研发沉淀,华为下一代编程语言'仓颉”正式开启预览 Jun 22, 2024 am 09:54 AM

本站6月21日消息,在今日下午的HDC2024华为开发者大会上,华为终端BG软件部总裁龚体正式官宣了华为自研仓颉编程语言,并发布了HarmonyOSNEXT仓颉语言开发者预览版。这是华为首次公开发布仓颉编程语言。龚体表示:“2019年,仓颉编程语言项目在华为诞生,历经5年研发沉淀,大量研发投入,今日终于和全球开发者见面。仓颉编程语言通过现代语言特性的集成、全方位的编译优化和运行时实现、以及开箱即用的IDE工具链支持,为开发者打造友好开发体验和卓越程序性能。”据介绍,仓颉编程语言是一款面向全场景智

华为开启鸿蒙 HarmonyOS NEXT 仓颉编程语言开发者预览版 Beta 招募 华为开启鸿蒙 HarmonyOS NEXT 仓颉编程语言开发者预览版 Beta 招募 Jun 22, 2024 am 04:07 AM

本站6月21日消息,华为自研仓颉编程语言今日正式亮相,官方宣布开启HarmonyOSNEXT仓颉语言开发者预览版Beta招募。本次升级为开发者预览版尝鲜升级,提供仓颉语言SDK、开发者指南以及相关的DevEcoStudio插件,供开发者使用仓颉语言开发、调试及运行HarmonyOSNext应用。报名周期:2024年6月21日-2024年10月21日申请要求:本次HarmonyOSNEXT仓颉语言开发者预览版Beta招募活动,仅面向以下开发者开放报名:1)已在华为开发者联盟完成实名认证;2)完成H

天津大学、北航深度参与华为'仓颉”,推出首个基于国产编程语言的 AI 智能体编程框架'苍穹” 天津大学、北航深度参与华为'仓颉”,推出首个基于国产编程语言的 AI 智能体编程框架'苍穹” Jun 23, 2024 am 08:37 AM

本站6月22日消息,华为昨日面向全球开发者介绍华为自研编程语言——仓颉(Cangjie)。这是仓颉编程语言的首次公开亮相。本站查询获悉,天津大学、北京航空航天大学深度参与了华为“仓颉”的研发。天津大学:仓颉编程语言编译器天津大学智能与计算学部软件工程团队携手华为仓颉团队,深度参与仓颉编程语言编译器的质量保障研究。据介绍,仓颉编译器是与仓颉编程语言共生的基础软件。在仓颉编程语言的筹备阶段,与之相配的高质量编译器成为核心目标之一。随着仓颉编程语言的演化,仓颉编译器也在不断地升级、改进。五年来,天津大

华为自研仓颉编程语言官网和开发文档上线,首次融入鸿蒙生态 华为自研仓颉编程语言官网和开发文档上线,首次融入鸿蒙生态 Jun 22, 2024 am 03:10 AM

本站6月21日消息,在HDC2024华为开发者大会前,华为自研仓颉编程语言正式亮相,仓颉官网现已上线。官网介绍显示,仓颉编程语言是一款面向全场景智能的新一代编程语言,主打“原生智能化、天生全场景、高性能,强安全”。融入鸿蒙生态,为开发者提供良好的编程体验。本站附官网介绍如下:原生智能化内嵌AgentDSL的编程框架,自然语言&编程语言有机融合;多Agent协同,简化符号表达,模式自由组合,支持各类智能应用开发。天生全场景轻量化可缩放运行时,模块化分层设计,内存再小也能装得下;全场景领域扩

Microsoft Edge浏览器不显示图片怎么办-Microsoft Edge浏览器不显示图片的解决方法 Microsoft Edge浏览器不显示图片怎么办-Microsoft Edge浏览器不显示图片的解决方法 Mar 04, 2024 pm 07:43 PM

近期有很多小伙伴咨询小编MicrosoftEdge浏览器不显示图片怎么办,接下来就让我们一起学习一下MicrosoftEdge浏览器不显示图片的解决方法吧,希望可以帮助到大家。1、首先点击左下角开始,右击“Microsoftedge浏览器”,如下图所示。2、然后选择“更多”,点击“应用设置”,如下图所示。3、接着下滑找到“图片”,如下图所示。4、最后将图片下方的开关打开即可,如下图所示。上面就是小编为大家带来的MicrosoftEdge浏览器不显示图片怎么办的全部内容,希望对大家能够有所帮助哦。

C++技术与其他现代编程语言的优缺点对比 C++技术与其他现代编程语言的优缺点对比 Jun 01, 2024 pm 10:15 PM

C++与其他现代编程语言的优缺点对比为:C++优势:高性能、低级控制、丰富的库生态系统。C++劣势:学习曲线陡峭、手动内存管理、可移植性受限。Python优势:学习曲线平滑、广泛的库支持、解释型语言。Java优势:平台无关、自动内存管理、广泛应用。JavaScript优势:前端开发必备、轻量级、动态类型。

华为纯血鸿蒙生态最后一环!自研仓颉编程语言将首次亮相 华为纯血鸿蒙生态最后一环!自研仓颉编程语言将首次亮相 Jun 21, 2024 pm 03:23 PM

6月21日消息,今天下午,华为开发者大会2024将正式揭幕。“纯血鸿蒙”HarmonyOSNEXT自然是重中之重,按照余承东之前透露的规划,今天下午就可能正式宣布公测,普通消费者也能尝鲜“纯血鸿蒙”了。据爆料,首批支持的手机为Mate60系列和Pura70系列。值得注意的是,作为“纯血鸿蒙”,HarmonyOSNEXT去掉了传统的Linux内核和AOSP安卓开源代码,全栈自研。据新浪科技最新报道称,华为还将补齐鸿蒙生态的最后一环,在大

See all articles