0

作为一个新手问题,假设可以使用 switch 语句,匹配运算符是否可以用于列表迭代器

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

2 回答 2

1

你的意思是这样的:

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

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

于 2012-07-01T17:25:53.363 回答
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] 周围加上括号。

于 2012-07-01T20:09:29.100 回答