集合和映射布尔值评估
如果不为 null 且不为空,则集合和映射的计算结果为 true,如果为 null 或为空,则计算结果为 false
/* an empty map example*/
def userInfo = [:]
if (!userInfo)
userInfo << ['user': 'Groot', 'species' : 'unknown' ]
将 user: 'Groot' , species : 'unknown'
添加为默认 userInfo,因为 userInfo 地图为空(请注意,这里的地图不为空)
对于 null 对象,代码略有不同,我们不能在 userInfo 上调用<<因为它为 null,我们必须进行赋值(也可以参考 Object boolean evaluation):
/* an example with a null object (def does not implies Map type) */
def userInfo = null
if (!userInfo)
userInfo = ['user': 'Groot', 'species' : 'unknown' ]
并使用空地图:
/* The same example with a null Map */
Map<String,String> userInfo = null
if (!userInfo)
userInfo = ['user': 'Groot', 'species' : 'unknown' ]