if(var == something) {
A();
B();
} else if(var == something_else) {
A();
B();
C();
} else {
assert(false);
}
Run Code Online (Sandbox Code Playgroud)
在两种if情况下,如何避免调用A()和B()的代码重用.我应该使用开关盒,
switch(var) {
case something:
case something_else:
A();
B();
break;
}
if (var == something_else)
C():
Run Code Online (Sandbox Code Playgroud)
什么是更好的解决方案?switchvs中是否存在性能损失if else?
if (var == something || var == something_else) {
A();
B();
}
if (var == something_else) {
C();
}
Run Code Online (Sandbox Code Playgroud)
如果你还需要else,你可以这样做:
if (var == something || var == something_else) {
A();
B();
if (var == something_else) {
C();
}
} else {
assert(false);
}
Run Code Online (Sandbox Code Playgroud)
关于你的问题,
在switch vs if else中是否有任何性能损失?
请阅读这个问题的答案:
简而言之,通常不存在任何明显的差异.因此,您应该在考虑可读性的情况下编写代码.在if/else和之间switch,只需选择更自然的东西.