1
ruiwen 2016 年 7 月 27 日
//java version
boolean result = getsth(a, b) || getsth(c, d) || getsth(e, f); if (!result) log("failed"); return result; |
2
kindjeff 2016 年 7 月 27 日 via iPhone
abcdef 放数组里,用循环不停的获取 result 直到达到你想的
|
3
aprikyblue 2016 年 7 月 27 日 via Android result = getsth(a, b) or getsth(c, d) or getsth(e, f) or None
if result: return result else: print 'failed' |
4
aprikyblue 2016 年 7 月 27 日
缩进挂了。。
|
5
eric6356 2016 年 7 月 27 日
我不是很赞成这么多函数写在一行里,不利于今后的维护也不便于版本控制器的追踪。
我的建议是,因为你 if 里面 return 了,所以其实可以把所有的 else 都拿掉不写。 这样算是比较折中吧,既好看也好懂。 |
6
aprikyblue 2016 年 7 月 27 日
如果数量再继续增多的话,比较推荐 3L 的做法
|
7
aprikyblue 2016 年 7 月 27 日
呸。。更正楼上: 2L
|
8
veelog 2016 年 7 月 27 日 via Android
为啥不用循环
|
9
kkzxak47 2016 年 7 月 28 日 via Android
业务本身就是这样繁琐,为什么一定要求描述业务的代码“更好”。
|
10
kkzxak47 2016 年 7 月 28 日 via Android
不过我会把 else 全撤了
|
11
angelface 2016 年 7 月 28 日
@kkzxak47 赞同
典型的嵌套条件,须要使用 guard clauses 替换: result = getsth(a, b) if result : ....return result result = getsth(b, d) if result: .... return result .. .. .. |
12
angelface 2016 年 7 月 28 日
上面忘了说为什么这样处理会更好。这样处理主逻辑清晰,看代码的人很容易理解,并且新增条件时,可以很容易修改代码,最后可以保证在所有条件不满足时返回 failed
|