逍遥游

不同编程语言中分号的作用

寒假看php视频的时候看到视频里说分号是语句分隔符(即最后一条语句结束不需要分号),但是我的印象里分号一直都是语句结束符。当时忙着做其他事,没去深究,最近突然又想到了,于是研究研究,看看到底是培训机构在糊弄,还是大学里的教授在误人子弟。

分号的作用?

网上关于分号的研究不是很多,大概大家觉得没什么可研究的吧,管它是什么,会用就行。首先说下得到的结论:不同的编程语言中分号的作用是不同的,有的是作为语句结束符,有的是作为语句分隔符,也有的不用分号。

用分号作为语句结束符主要是C语言系的,包括C、C++、JAVA等等(groovy语言除外);将分号作为语句分隔符的符号则有php、js等。这两种都是为了分割语句,本质上没有太大区别。还有一些语言中分号不是用来作为分割语句的,例如汇编中分号代表单行注释。

值得一提的是,有些语言用缩进或者其他方式来取消分号的分割作用,例如VB的换行、结构开始和结束匹配符号(就像xml文档一样),再如python用缩进来完全代替。不用分号的语言也很多,比如 Python、Ruby。

撇开注释作用来说,分号的主要作用就是分割语句。计算机是很笨的,只能接受无二义性的语法,所以要有一个分隔符来帮助隔开语句。另一个目的就是,方便程序猿看代码。

为什么用分号分割语句?

那么多符号,为什么偏偏选择了分号?原因很简单,键盘上的分号正好在右手小拇指的位置,打起来方便,比起句号之类有着得天独厚的优势。

到底加不加分号?

对于必须要加的语言来说,答案是毋庸置疑的。那么,如果是使用其他语言呢,是否要在每一句语句结束加上分号?都可以。

更好的建议是

  • 团队开发时跟其他成员保持一致
  • 如果不清楚,加上,不会错。
  • 看心情(呵呵,瞎说的)

本文参考了以下几篇博客/文章

程序员特有的9个坏习惯

JavaScript 语句后应该加分号么?

编程语言中分号的探讨


多说停止服务,disqus引导注册太过分,暂时不上评论系统了。有机会自己造轮子吧。邮箱:input@newnius.com