複雑な条件でも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脳になりかかっているのかも。