短絡評価に頼るとコードが壊れやすくなりますか? 基本的に次のようなコードを書きました。私の教授は私にそれを書き直してほしかった。
(注: どのストリームでも「次のトークン」は 1 つしかないため、4 つの条件のうち 1 つだけが true になることは確かですよね?)
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;
}
これは本当に壊れやすいですか?完璧に機能していると思います。でもどうやって書き直せばいいの?