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