程序中的一个细节:只要一个返回语句 转载
来源:互联网 发布:c语言全套视频教程 编辑:程序博客网 时间:2024/04/29 18:04
本文是从 A return to Good Code 这篇文章翻译而来。来自: 外刊IT评论
别再这样写了:
public boolean foo() {
if (true) {
return true;
} else {
return false;
}
}
每次当我深入某个开源项目,看到大概是某个专家写的、并被有经验的专业人士审查过的这样的代码,我都会惊讶不已,竟然没有人去阻止这个开发者在这个方法里胡乱的放置返回语句。
请告诉我,把代码写成下面的样子很难吗?
public boolean foo() {
boolean flag = true;
if (true) {
flag=true;
}
else {
flag=false;
}
return flag;
}
这是Java基本常识。实际上,这不仅是Java基本常识,这是小学水平的Java知识。如果你的方法返回一个值,你应该在方法的开始处把它声明做一个变量。然后再去做一些赋予这个变量正确意义的操作。然后,在你的最后一行,把这个变量返回给调用程序。这样做不仅仅是为写出好的代码,这是一种有教养的表现。
你是否曾试图修改过一些在方法里到处都是返回语句的程序代码?无从下手。事实上,去维护这样的代码,你第一要做的是重新组织它的结构,让它里面不再有一大堆的返回语句。这样才能把事情做好。没有任何一个方法是不可以写成只在末尾处有一个的、单一的、易于找到的返回语句的形式的。
的确,烂程序员总有一万个理由来说明他们为什么编写出这样糟糕的程序代码。“我只是为了避免在返回时一堆的多余的条件判断语句。”那好,首先,我告诉你,计算机中执行一些条件判断语句时是该死的快,你用短路一个方法来节省CPU的一两个指令操作不是显的太荒诞了吗。此外,如果这些所谓多余的条件判断语句最终没有派上用场的话,这是否是一个有用的信号来说明你的“多余”的代码可能需要重写,也许可以把它们重构成另外一个方法,让它们显的不多余?
关键要说的是,没有任何理由可以为写糟糕的代码或当懒惰的程序员做托辞,特别是当写出好的代码并不是那么困难的情况下。不要在写出里面有成百上千个返回语句的方法了。Java里的方法只可以返回一个值,相应的,一个方法应该有且只有一个返回语句。
本文是从 A return to Good Code 这篇文章翻译而来。来自: 外刊IT评论
- 程序中的一个细节:只要一个返回语句 转载
- 只要一个返回语句
- 只要一个返回语句
- 只要一个返回语句
- 好的代码里只要一个 return 语句
- 好的代码里只要一个return语句
- 编写一个删除c语言中的注释语句/* */的程序
- robot录制脚本中的一个细节问题
- 正则表达式中的一个小细节
- java中的一个画图小细节
- android is library 中的一个细节
- tp中的if conditon一个细节
- Android自定义控件中的一个动画细节
- POI添加到Maven中的一个细节
- sql语句返回结果是一个类
- 政治生活中的一个程序
- 人只要找准一个点
- SqlServer中的一个update语句
- poj 1125Stockbroker Grapevine(Floyd)
- 可以的、、
- 关于旋转的一些设置
- php session 登录
- google svn 服务器使用(免费SVN服务器)
- 程序中的一个细节:只要一个返回语句 转载
- poj 2396(有上下界的可行流)
- 软件测试V模型
- js window.event
- 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序(约瑟夫环问题)
- 主人介绍
- WPF 在TextBox失去焦点时检测数据,出错重新获得焦点解决办法
- C#中的一个线程同步的例子
- 应用Javascript+GD2函数制作无刷新验证码