扫码关注官方订阅号
闭关修行中......
有什么不好的。有时用多个return方便很多,干嘛不用。
当然不好,多个return会使返回结果难以预期,你能保证return前的代码没有bug?
不光是java吧,所有的语言都一样,代码在运行到return时就会跳出。如果函数中有多个判断分支,建议先将返回值存放在变量中,在最后return。
我到是比较纠结return只是用于中断函数执行时到底怎么写?
第一种:
doSomething(); return;
第二种:
return doSomething();
这里return只是为了函数不再往下执行,并不在乎return什么内容。我用第一种方式,但第二种方式写起来顺手。我的担忧是,第二种方式是否会占用内存,是否给后来维护代码的人带来困惑?
无所谓好不好,如果你不想用多处,那就用 do while false 好了。如下:
Object ret; L0: do { ... if (某条件) { ret = xxx; break L0; } ... ret = YYY; } while (false); return ret;
用的好可以把很深的 if else 代码拉平,逻辑变得清晰。如 这段代码 ,当然了这是我个人的习惯写法,好不好另说了,只是举例用一个 return 的一种方式。
不过一般我推荐我的小组成员尽可能块的结束掉函数体,优先处理错误、简单逻辑,尽可能快速的 return,throw,让代码层级平一些,逻辑清楚些。当然了,得根据实际情况来判断用是不是真的适合这种方式,也有时候不是这样。
return是为了让函数跳出,或者在特定的地方返回特定的值,使用很普遍啊。不需要这么教条吧?
举个例子:有个String method(int id, String name){};这里是个查询控制跳转视图的method.条件有以下几个点id>0跳转到A视图id>0后判断,如果name=b跳转到B视图默认跳转到C视图那么一般情况下代码会这么写:
String redirect = "/view/c"; if(id > 0){ redirect = "/view/a" if(Utils.isNotEmpty(name) && name.equals('b')){ redirect = "/view/b"; } } return redirect;
以上面代码为栗子,可以改成这样
if(id > 0){ if(Utils.isNotEmpty(name) && name.equals('b')){ return "/view/b"; } return "/view/a"; } return "/view/c";
这样的话,减少了变量,变量是很容易出各种各样的问题的,最大的问题是容易把值弄丢。以上就是我的看法。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
有什么不好的。有时用多个return方便很多,干嘛不用。
当然不好,多个return会使返回结果难以预期,你能保证return前的代码没有bug?
不光是java吧,所有的语言都一样,代码在运行到return时就会跳出。
如果函数中有多个判断分支,建议先将返回值存放在变量中,在最后return。
我到是比较纠结return只是用于中断函数执行时到底怎么写?
第一种:
第二种:
这里return只是为了函数不再往下执行,并不在乎return什么内容。
我用第一种方式,但第二种方式写起来顺手。我的担忧是,第二种方式是否会占用内存,是否给后来维护代码的人带来困惑?
无所谓好不好,如果你不想用多处,那就用 do while false 好了。如下:
用的好可以把很深的 if else 代码拉平,逻辑变得清晰。如 这段代码 ,当然了这是我个人的习惯写法,好不好另说了,只是举例用一个 return 的一种方式。
不过一般我推荐我的小组成员尽可能块的结束掉函数体,优先处理错误、简单逻辑,尽可能快速的 return,throw,让代码层级平一些,逻辑清楚些。当然了,得根据实际情况来判断用是不是真的适合这种方式,也有时候不是这样。
return是为了让函数跳出,或者在特定的地方返回特定的值,使用很普遍啊。不需要这么教条吧?
举个例子:
有个String method(int id, String name){};
这里是个查询控制跳转视图的method.条件有以下几个点
id>0跳转到A视图
id>0后判断,如果name=b跳转到B视图
默认跳转到C视图
那么一般情况下代码会这么写:
以上面代码为栗子,可以改成这样
这样的话,减少了变量,变量是很容易出各种各样的问题的,最大的问题是容易把值弄丢。
以上就是我的看法。