gpt4 book ai didi

java - 在 Java 中使用短路评估进行编程

转载 作者:行者123 更新时间:2023-11-29 09:55:03 25 4
gpt4 key购买 nike

依赖短路评估会使代码变得脆弱吗?我写了一段代码,基本上如下所示。我的教授要我重写它。

(注意:我确定四个条件中只有一个为真,因为给定任何流,只有一个“下一个标记”,对吧?)

foo getFoo()
{
Bar bar;
if ((bar = peekAndGet('x')) != null
|| (bar = peekAndGet('y')) != null
|| (bar = peekAndGet('z')) != null
|| (bar = peekAndGet('t')) != null)
return produce(bar);
else
return null;
}

这真的很脆弱吗?我发现它工作得很好。但是我应该如何重写呢?

最佳答案

我会重构它并这样写:

char[] values = {'x', 'y', 'z', 't'};
for (char c : values) {
Bar bar = peekAndGet(c);
if (bar != null) return produce(bar);
}
return null;

注意:这样做的一个很好的理由是,在我第一次阅读您的代码时,我认为它看起来有问题,直到我阅读了您的问题。您想为真正错误的事情保留那些“看起来不对劲”的时刻。

关于java - 在 Java 中使用短路评估进行编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15376140/

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