假设P1, P2, Q1
和Q2
是谓词。如何以清晰的方式编写此嵌套和多个条件分支?
我拿出同一事物的两个实现:
if (P1(x) ? P2(y) : true) && (Q1(z) ? Q2(w) : true)
do-something
和
if (P1(x) && Q1(z))
if (P2(y) && Q2(w))
do-something
if (P1(x) && ! Q1(z))
if (P2(y))
do-something
if (! P1(x) && Q1(z))
if (Q2(w))
do-something
if (! P1(x) && ! Q1(z))
do-something
我喜欢第一个,因为它更简洁。但是我错过了什么?
有没有比上述两种方法做同样的事情?
如果有更多的对谓词R1
,同样R2
工作P1
和P2
的,是第一种方式好还是最好的方法是什么?
实现P2
和Q2
作为函数总是更好吗?如果它们不作为功能实施呢?
,因为这似乎是一个有关可能问题**功能**代码的排列,它似乎更适合[代码评论](http://codereview.stackexchange.com/) – Claies