【发布时间】:2020-09-06 16:17:33
【问题描述】:
考虑这个伪代码:
if(p){
foo()
bar1()
}
if else(q){
foo()
bar2()
}
有没有办法避免调用函数 foo() 两次?我可以写:
if(p||q){
foo()
}
...
但这是唯一的解决方案吗?
【问题讨论】:
-
在进行条件检查之前为什么不直接运行 foo?
-
@enhzflep 因为可能存在 p 和 q 都不为真的情况,所以 foo 根本不应该运行
-
@WinnieThePooh 在不同情况下两次调用同一个函数不是问题。事实上,这就是模块化背后的想法。这可能是个人意见,但我更喜欢第一种方式,因为它对我来说似乎更具可读性。对于您的第二个 sn-p,您将需要另外两个 if 来检查是运行 bar1 还是 bar2