初心者の質問として、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
}
}
(私はグルーヴィーな専門家ではありません - 提案が望ましいです)
それを行うグルーヴィーな方法は、クロージャのマップを使用することです:
def caseMap = [ 1 : { println "ONE!" },
2 : { println "TWO!" },
]
def myList = [1, 2, 3, 4]
myList.each {
if (caseMap.containsKey(it)) {
caseMap[it]()
}
}
caseMap[it] を括弧で囲む必要がある場合があります。