Yuv*_* A. 30 performance if-statement return
这可能听起来像一个愚蠢的问题,我犹豫要发布它,但仍然:如果某些东西只需要在某种条件下运行,哪些更有效:
一个.
if (condition) {
// do
// things...
}
Run Code Online (Sandbox Code Playgroud)
B.
if (!condition) { return; }
// do
// things...
Run Code Online (Sandbox Code Playgroud)
虽然我同意您应该首先选择可读性,但我将继续添加一些信息:在 C# 中,没有区别。它编译为相同的东西(当通过构建发布模式进行优化时)。其他语言?谁知道呢,我确信他们中的一些人认为它有所不同,但您实际上需要担心它的可能性微乎其微。
这是一种风格的东西.表现不相关; 两者都产生几乎相同的机器码.
关于风格的几点考虑:
如果您想避免"水平编程",您可能希望更喜欢B来避免嵌套条件.例如,如果要在不影响方法流程的情况下添加异常:
答:
public String getDescription(MyObject obj) {
if (obj == null) {
return "";
} else {
if (!obj.isValid()) {
return "invalid";
} else {
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
B:
public String getDescription(MyObject obj) {
if (obj == null) {
return "";
}
if (!obj.isValid()) {
return "invalid";
}
....
}
Run Code Online (Sandbox Code Playgroud)
但如果你问我,差异很小.绝对不值得'代码风格的战争'.