几周前,我提交了一个代码审查函数,如下所示。
Function{
If (condition)
Else If (condition)
Else if (condition)
Else
return value
}
我的代码审查负责人说“我讨厌 else if”,但他没有说明原因或我应该做什么。他刚刚允许我上传这个函数。
我的问题是,有哪些替代方案可以替代一堆“else if”,使代码看起来更优雅,并且性能可能更好?
我尝试提取他的代码来了解他会做什么,我注意到他多次这样做
If (condition)
If (condition)
If (condition)
我应该避免写“else”吗?我本来想问他的,但他已经不在这里工作了。
谢谢
最佳答案
我尽量避免使用“else”、“else if”以及“if”和“for”。在我看来,分支和循环增加了代码的复杂性。但这每次都取决于你想做什么。一些例子:
如果你这样做:
if fruit.isBanana() then fruit.eatBanana()
else if fruit.isOrange() then fruit.eatOrange()
...
除此之外,您还可以使用继承:
class Banana extends Fruit {
function eat() {
... yum yum yum banana ...
}
}
class Orange extends Fruit {
function eat() {
... yum yum yum orange ...
}
}
然后,如果您有一个实例:
fruit.eat()
另一个例子:如果使用“if”和“for”进行过滤:
longFruits = []
for fruit in fruits {
if fruit.isBanana() then longFruits.add(fruit)
}
然后你可以使用collections相反:
longFruits = CollectionUtils.select(fruits, Precicate.isBanana)
这只是几个示例和技术。
关于java - 分枝效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35229808/