gpt4 book ai didi

java - 这两种代码风格的区别有名字吗?

转载 作者:行者123 更新时间:2023-12-03 09:53:59 25 4
gpt4 key购买 nike

当我看到别人的代码时,我主要看到两种类型的方法样式。
一个看起来像这样,有很多嵌套的 if:

void doSomething(Thing thing) {
if (thing.hasOwner()) {
Entity owner = thing.getOwner();
if (owner instanceof Human) {
Human humanOwner = (Human) owner;
if (humanOwner.getAge() > 20) {
//...
}
}
}
}
而另一种风格,看起来像这样:
void doSomething(Thing thing) {
if (!thing.hasOwner()) {
return;
}
Entity owner = thing.getOwner();
if (!(owner instanceof Human)) {
return;
}
Human humanOwner = (Human) owner;
if (humanOwner.getAge() <= 20) {
return;
}
//...
}
我的问题是,这两种代码样式有名称吗?如果,他们叫什么。

最佳答案

第二个例子中的提前返回被称为保护子句。
在该方法将要执行的实际操作之前,会检查一些先决条件,如果它们失败,该方法会立即返回。它是一种快速故障机制。
关于这些退货声明有很多争论。有些人认为在一个方法中有多个 return 语句是不好的。其他人认为它避免将代码包装在一堆 if 语句中,就像在第一个示例中一样。
我自己卑微的选择符合this post : 尽量减少返回的数量,但如果它们提高可读性,就使用它们。
有关的:

  • Should a function have only one return statement?
  • Better Java syntax: return early or late?
  • Guard clauses may be all you need
  • 关于java - 这两种代码风格的区别有名字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65822041/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com