Groovy中对Map的存取操作有很多种,简单说明一下其中的不同之处,如有错误还望指出谢谢。
Groovy中对Map的存取有以下几种方式:
def key="a"
def m=["${key}":"key is ${key}",(key):"${key}"]
println m
println m.get("${key}")+"|"+m.get("a")
println m."${key}"+"|"+m."a"
println m["${key}"]+"|"+m["a"]
println "================"
m["${key}"]="new a"
println m
println m.get("${key}")+"|"+m.get("a")
println m."${key}"+"|"+m."a"
println m["${key}"]+"|"+m["a"]
println "================"
m<<["${key}":"new key"]
println m
println m.get("${key}")+"|"+m.get("a")
println m."${key}"+"|"+m."a"
println m["${key}"]+"|"+m["a"]
println "================"
m."${key}"="c"
println m
println m.get("${key}")+"|"+m.get("a")
println m."${key}"+"|"+m."a"
println m["${key}"]+"|"+m["a"]
println "================"
m.put("${key}","d")
println m
println m.get("${key}")+"|"+m.get("a")
println m."${key}"+"|"+m."a"
println m["${key}"]+"|"+m["a"]
println "================"
使用[]和.方式进行Map的存取时,如果使用的是GString,会将GString转为String后做为键。而使用Map的api进行存取时,如果使用的是GString则不会对其进行转换,直接将GString做为键。使用<<存储Map元素时,也不会对GString对象做转换。在使用时一定要格外小心。