首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >方法的调用方式为if-else或out of if-else

方法的调用方式为if-else或out of if-else
EN

Stack Overflow用户
提问于 2018-08-14 09:24:27
回答 6查看 70关注 0票数 1

我有一个问题,就是在if- out或out if-else语句中调用一个方法。

if-else中调用方法if-else

代码语言:javascript
复制
int a = 1;

if (SOME_CONDITION) {
    /* Never chagned variable a */
    foo(a);
} else {
    /* Never chagned variable a */
    foo(a);
}

调用方法out of if-else

代码语言:javascript
复制
int a = 1;

if (SOME_CONDITION) {
    /* Never chagned variable a */
} else {
    /* Never chagned variable a */
}

foo(a);

哪一个的表现更好?

EN

回答 6

Stack Overflow用户

发布于 2018-08-14 09:27:51

性能没有差别,但代码重复。因此,第二种方式更好。

不过,让我向你介绍另一种方式:

代码语言:javascript
复制
if (SOME_CONDITION) {
   /* Never chagned variable a */
 } else {
    /* Never chagned variable a */
}

int a = 1;
foo(a);

甚至更好:

代码语言:javascript
复制
foo(1);

如果之间没有步骤,则使用调用它的方法保留变量。此外,不要定义新变量,因为该值可能会立即传递。

票数 4
EN

Stack Overflow用户

发布于 2018-08-14 09:28:01

哪一个的表现更好?

无论哪种方式,该方法只被调用一次,因此不会有任何区别。

不过,通常情况下,您应该专注于编写清晰、可理解、可维护的代码,并在需要担心的特定性能问题时考虑性能问题。

在这种情况下,您的第二个选项更清晰、更容易维护(在两个地方调用打开了更改其中一个而忘记更改另一个位置的可能性)。

票数 1
EN

Stack Overflow用户

发布于 2018-08-14 09:29:08

就性能而言,两者是相同的。

说到记忆,第二种方式更好。这种方法称为代码移动,是一种代码优化技术。这是因为如果函数是由编译器内联的,那么整个函数体将被粘贴两次,从而导致更多的代码空间。希望有帮助:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51838077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档