在Groovy中使用.match运算符的示例

时间:2012-07-01 17:15:51

标签: groovy

作为一个新手问题,如果可以使用switch语句,可以在列表迭代器上使用匹配运算符

def myList = [1, 2, 3, 4]
myList.each {
    it.match {
        case /1/ => println "ONE!"
        // etc.
    }
}

2 个答案:

答案 0 :(得分:1)

你的意思是:

def myList = [1, 2, 3, 4]
myList.each {
    switch(it) {
        case ~/1/ : println "ONE!"; break
        case ~/2/ : println "TWO!"; break
    }
}

(我不是时髦的专家 - 建议是可取的)

答案 1 :(得分:0)

一种常规方法是使用闭包图:

def caseMap = [ 1 : { println "ONE!" },
                2 : { println "TWO!" },
              ]
def myList = [1, 2, 3, 4]
myList.each { 
    if (caseMap.containsKey(it)) { 
        caseMap[it]() 
    }
}

您可能需要在caseMap [it]周围放置一些parens。