複雑な条件でもOK
複雑な条件の組み合わせもgroovyなら簡単。
クロージャってすばらしい。
class P{ def v1 def v2 def check(cond){ if (cond.c1.call(v1) && cond.c2.call(v2)){ cond.func.call() } } } class C{ Closure c1 Closure c2 Closure func } def conds = [ new C( c1:{it == 1}, c2:{(0..3).contains(it)}, func:{println "con1"}), new C( c1:{it == 1}, c2:{(4..10).contains(it)}, func:{println "con2"}) ] def p1 = new P(v1:1, v2:5) conds.each{ p1.check(it) }
なんで、こんなのを試したかというと、お仕事で4つのenum値の組み合わせで処理を分岐させるケースがあって、シコシコとロジック書くのがばからしくなったから。
でもC++でやろうとすると、いっぱいクラスや関数をつくんないといけなくて、うまくいかなかった。
groovyなら、さくっとできるのに。
もう、頭がgroovy脳になりかかっているのかも。