左花括号位置的争议

简介:
举个例子,看看这个破烂争议是怎么产生的。
将花括号也就是"{"放在声明的下一行:
int fun()
{
    int a=0;
    return a;
}
将花括号放在声明的同一行:
int fun(){
    int a=0;
    return a;
}
我使用的是第二种方法。有个微软的超级fans 并我的同学,总是评述我的做法是如何的错误,微软以及将花括号另起一行是如何的正确。无可奈何之下我也要论证一番。
    不可否认,当初学习c语言的时候我也将"{"另起一行,直到我学习java的时候才将"{"与声明同置一行。并且习惯了这一种做法。象先知Brain Kernighan和Dennis Ritchie展现的那样:把左括号放在行尾,右括号放在行首。所以这种做法也叫K&D风格。除了微软和国内一些公司以外大多数使用的是 K&D风格。
    linux源码风格是K&D,
    java官方风格是K&D,
    Bruce Eckel(Thinking in java作者)是K&D,
    ...
所以下次有人要说服我放弃K&D风格时,请不要找我,找K&D们 
   
这样的做法的好处是很明显的,一个代码段的开始到底是从 声明开始还是从 左花括号开始?  应该是从声明开始。比如:
int fun(){
    int a=0;
    return a;
}
读这段代码的时候,显然是从 int开始的,"{"这时候扮演的仅仅是内部角色,如果我们确信"{"是存在的,我们完全可以将"{"略去不读。仅仅是这个原因我们就少读了一行代码!也留出了更多空间来写注释。
 
另外一个原因是,这样做使得代码更加紧凑,要学金庸,不要学古龙。紧凑的代码理解更快,更容易。



本文转自 xhinkerx 51CTO博客,原文链接:http://blog.51cto.com/xhinker/132591,如需转载请自行联系原作者
目录
相关文章
markdown常用语法--花括号(超详细)
markdown常用语法--花括号(超详细)
|
存储 关系型数据库 PostgreSQL
|
缓存 JavaScript Java
SpringBoot集成onlyoffice实现word文档编辑保存
SpringBoot集成onlyoffice实现word文档编辑保存
2415 0
|
7月前
|
人工智能 前端开发 开发工具
对话阿里云通义灵码技术负责人陈鑫:AI编程的现状与未来
在AI快速发展的2025年,通义灵码作为国内领先的AI编程助手,正通过其独特的智能体架构和强大模型能力重新定义开发方式。本文邀请技术负责人陈鑫(神秀),探讨AI编程现状与未来。通义灵码基于Qwen3模型打造,具备记忆系统革新、MCP工具生态和多模态交互等优势,推出三种工作模式以适应不同场景。尽管行业仍面临挑战,但国产模型正在崛起,企业可采用“三步走”策略引入AI工具。未来,AI将从辅助走向主导,深化代码理解并重构开发工具,助力更高效、创造性的编程方式。
|
Cloud Native Dubbo Java
SpringCloud与云原生
SpringCloud与云原生
335 0
grep仅显示匹配行的文件名
grep仅显示匹配行的文件名
1043 1
|
监控 NoSQL JavaScript
看看人家的快速开发平台,确实清新优雅!
看看人家的快速开发平台,确实清新优雅!
看看人家的快速开发平台,确实清新优雅!
|
SQL 数据可视化 关系型数据库
使用PowerDesigner设计数据库保姆级教程
使用PowerDesigner设计数据库
2408 0
使用PowerDesigner设计数据库保姆级教程
|
设计模式 移动开发 前端开发
微前端架构初探以及我的前端技术盘点
最近几年微前端一直是前端界的热门议题, 它类似于微服务架构, 主要面向于浏览器端,能将一个复杂而庞大的单体应用拆分为多个功能模块清晰且独立的子应用,且共同服于务同一个主应用。各个子应用可以独立运行、独立开发和独立部署。 微前端架构概念的诞生及应用对于提供复杂应用服务的企业来说显然是一种机遇, 同样也是一种挑战.本文主要就微前端架构的概念和实现方案做一个总结和复盘,并且通过一个实际案例来实践微前端架构,希望能对同样有此需求的朋友们提供一些帮助和思路.
1040 1
|
SQL Dubbo 安全
关于“错误码”设计方面的思考|系统异常,我****
这篇文章给大家分享一下关于“错误码”设计方面的思考。其实提到“错误码”我的第一反映是:混乱。 特别是在微服务架构之下,各个团队都有一套自己的“错误码”,甚至在一个团队里面不同的微服务都有自己的一套码值,这些“一套一套”的错误码,各成一派,互不通气。 但是一旦微服务上下游交互涉及到错误码转换的时候,总有一方就开始痛了,因为总有一方要承担兼容转换、令人“恶心”的逻辑。 我也见过试图在一片混乱中“力挽狂澜”的案例,比如由基础架构组提供统一的错误码管理平台,如果某个系统需要错误码就去该管理平台上去申请。 这个想法固然是好的,但是我认为存在的一个巨大的问题就是:历史码值的治理。