
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 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 |