依赖短路评估会使代码脆弱吗?我写了一段代码,基本上如下所示。我的教授要我重写它。
(注意:我确信这四个条件中只有一个为真,因为给定任何流,只有一个“下一个令牌”,对吗?)
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;
}
这真的很脆弱吗?我发现它工作得很好。但是我应该如何重写它?