0
私はこのようなスイッチケースを持っている:スイッチケースを最適化するにはどうすればよいですか?
def someString = 'hello1234bla'
// ...
switch (someString) {
case {it.contains('1234')}:
doSomething()
break
case {it.contains('2468')}:
doSomethingElse()
break
default:
throw new Exception("ERROR: Number not found")
break
}
これには、一見単純な何かのためのコードのかなり多くあるように思われます。私が望むのは、someStringに特定の部分文字列が含まれているときに、異なる機能を実行させることだけです。おそらくif-elseカスケードから離れて、これを行う簡単な方法はありませんか?
マップを使用して関数を保存し、そのマップ内の各要素を通って番号サイクルを入力して一致する関数を呼び出す方法についてはどうですか? Groovyにこのようなデータ型があるかどうかはわかりませんが、このコンセプトはJavaなどでは可能です。 –
@Krazor:Groovyでは、このような{{1234:{doSomething()}} each {s、fn - > if (someThing.contains(s))fn()} ' – cfrick
Yeiks、今はそれほど読みにくいです。ノン・ザ・レスであれば、ユーザー入力とそれに対応する機能を迅速に相関させたり変更したりすることができます。 –