非常に単純な目的を持つコードをインターネット上で見つけましたが、それは醜いアプローチを使用しています。おそらく、作成者はスイッチケースを使用して、以前に定義された Enum のいくつかの (連続していない) 値がそのスコープに属しているかどうかを判断しています。そうであれば、関数は戻りtrue
、それだけです。それ以外の場合は、 を返しますfalse
。
実際には次のようになります。
switch(value) {
case ONE:
case TWO:
/* many similar lines later */
case TWENTY:
case TWENTY_FIVE:
/* an afternoon later */
case ONE_HUNDRED:
return true;
default:
return false;
}
switch ケースの使用は、コンパイラによって生成されたジャンプ テーブルのおかげで瞬時にルックアップできることで正当化されます (ただし、ジャンプ テーブルは、私が収集したものからの瞬時のルックアップを必ずしも意味するわけではありません)。それでも、無数の不要なコード行が生成されます。
関数のインライン化と関数ポインターの配列の使用について読んだことがありますが、そのような特定のケースでそれを使用する方法がわかりません。
このような単純なケース (しゃれは意図されていません) で何行も書かないようにするにはどうすればよいですか?case X: