我有一个问题,就是在if- out或out if-else语句中调用一个方法。
在 if-else中调用方法if-else
int a = 1;
if (SOME_CONDITION) {
/* Never chagned variable a */
foo(a);
} else {
/* Never chagned variable a */
foo(a);
}调用方法out of if-else
int a = 1;
if (SOME_CONDITION) {
/* Never chagned variable a */
} else {
/* Never chagned variable a */
}
foo(a);哪一个的表现更好?
发布于 2018-08-14 09:27:51
性能没有差别,但代码重复。因此,第二种方式更好。
不过,让我向你介绍另一种方式:
if (SOME_CONDITION) {
/* Never chagned variable a */
} else {
/* Never chagned variable a */
}
int a = 1;
foo(a);甚至更好:
foo(1);如果之间没有步骤,则使用调用它的方法保留变量。此外,不要定义新变量,因为该值可能会立即传递。
发布于 2018-08-14 09:28:01
哪一个的表现更好?
无论哪种方式,该方法只被调用一次,因此不会有任何区别。
不过,通常情况下,您应该专注于编写清晰、可理解、可维护的代码,并在需要担心的特定性能问题时考虑性能问题。
在这种情况下,您的第二个选项更清晰、更容易维护(在两个地方调用打开了更改其中一个而忘记更改另一个位置的可能性)。
发布于 2018-08-14 09:29:08
就性能而言,两者是相同的。
说到记忆,第二种方式更好。这种方法称为代码移动,是一种代码优化技术。这是因为如果函数是由编译器内联的,那么整个函数体将被粘贴两次,从而导致更多的代码空间。希望有帮助:)
https://stackoverflow.com/questions/51838077
复制相似问题