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
    }
}

(私はグルーヴィーな専門家ではありません - 提案が望ましいです)

于 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 に答える