Groovy-使用迭代器添加映射项
请解释为什么这不起作用(JDK7上的Groovy 2.0.5)。我只想从列表中添加一些地图条目Groovy-使用迭代器添加映射项,groovy,map,Groovy,Map,请解释为什么这不起作用(JDK7上的Groovy 2.0.5)。我只想从列表中添加一些地图条目 def map = new HashMap<String,String>() map << ["key":"value"] def list = ["a","b","c"] list.each { map << [it:"value"] } println map println map.a println map.containsKey("a") /*
def map = new HashMap<String,String>()
map << ["key":"value"]
def list = ["a","b","c"]
list.each {
map << [it:"value"]
}
println map
println map.a
println map.containsKey("a")
/*
[key:value, a:value, b:value, c:value]
null <- ?
false <- ?
*/
defmap=newhashmap()
映射
它可以按你的要求工作
如果您这样做:
map << ["$it":"value"]
(为简洁起见,省略了包名)
然后,尝试查找带有字符串的GString键,但失败(请参阅“GString不是字符串”部分)
这项工作:
map << [(""+it):"value"]
map
map << [it:"value"]
map << [(it):"value"]
map << ["$it":"value"]
println map.keySet()*.getClass().name
// prints [GStringImpl, GStringImpl, String, GStringImpl ]
map << [(""+it):"value"]