作为一个新手问题,假设可以使用 switch 语句,匹配运算符是否可以用于列表迭代器
def myList = [1, 2, 3, 4]
myList.each {
it.match {
case /1/ => println "ONE!"
// etc.
}
}
作为一个新手问题,假设可以使用 switch 语句,匹配运算符是否可以用于列表迭代器
def myList = [1, 2, 3, 4]
myList.each {
it.match {
case /1/ => println "ONE!"
// etc.
}
}
你的意思是这样的:
def myList = [1, 2, 3, 4]
myList.each {
switch(it) {
case ~/1/ : println "ONE!"; break
case ~/2/ : println "TWO!"; break
}
}
(我不是 groovy 专家 - 建议是可取的)
一个很好的方法是使用闭包映射:
def caseMap = [ 1 : { println "ONE!" },
2 : { println "TWO!" },
]
def myList = [1, 2, 3, 4]
myList.each {
if (caseMap.containsKey(it)) {
caseMap[it]()
}
}
您可能需要在 caseMap[it] 周围加上括号。