编程风格之花括号(大括号)
今天一同事提出编程风格统一问题,刚好提到花括号(大括号)是否应该另起换行的问题引起了异义,一起以来我都采取的是直接另起一行的风格,可能跟接触的语言和工具有关吧。接触的比较多的都是Linux类开源方案,入门从C开始,然后一直是用的PHP做为主要开发语言,再就是JavaScript了,其他的用的比较少的就是Object-C和Python了.
目前流行的应该主要是以下两种风格:
风格一:起首的大括号另起一行
block
{
…….
}
风格二:起首的大括号跟在关键字后面
block{
… …
}
我一直采用的是风格一,起因是最早接触语言风格的是Linux相关的资料,提的比较多的就是GNU语言风格,信奉的理由也很简单,做为开源方向的童鞋来讲,Linux内核开发遵守的规范“你值得拥有” 🙂 ,应该C和C++的童鞋一般都采用这种风格的比较多,当然PHP也有很多:)
风格二传说是Java语言开发规范用的比较多的,K&R style?who care?
之前一直以为两种风格没有原则上的差异,无非就是习惯与风格罢了,这之前我也一直错误地这样以为.
有些语言其实还是必须要采用某种风格的,比如JavaScript,必须采用风格二,理由如下:
因为JavaScript会自动添加句末分号,如果采用风格一,大括号另起一行的话会产生一些难以察觉的错误.
return
{
key:value;
};
以上代码原义是要返回一个对象,实际上返回的是undefined,因为JavaScript会在return后面自动 添加一个分号.正确的代码应该写成下面这样:
return{
key:value;
};
其他语言还有什么区别的欢迎补充 🙂
引用资料:
http://en.wikipedia.org/wiki/Indent_style
http://www.zhihu.com/question/19742466
http://www.gnu.org/prep/standards/html_node/Formatting.html
http://oss.org.cn/ossdocs/gnu/c.html
http://www.ruanyifeng.com/blog/2012/04/javascript_programming_style.html