Groovy中Map几种存取方式的不同

        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对象做转换。在使用时一定要格外小心。

猜你喜欢

转载自blog.csdn.net/asty9000/article/details/80317027