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