0

对于groovy -v: Groovy Version: 1.8.6 JVM: 1.6.0_26 Vendor: Sun Microsystems Inc. OS: Linux:

def map = new HashMap()
def keyVariable = "a"
def valueVariable = "b"
map.put("${keyVariable}", valueVariable)

for (String key : map.keySet()) {
    println map.get(key)
}

这打印null。有人能解释一下为什么 Groovy 找到了键,但不能通过同一个键找到对应的值吗?

4

1 回答 1

0

问题中的代码不null适合我(Groovy 2.1.6)

编辑后,问题是 Groovy 模板化的字符串会产生非常糟糕的地图键

更惯用的 Groovy 是:

def map = [:]
def keyVariable = "a"
def valueVariable = "b"
map[ keyVariable ] = valueVariable

map.each { key, value ->
    println value
}

// Or

map.keySet().each { key ->
    println map[ key ]
}
于 2013-08-05T09:41:57.023 回答