集合和對映布林值評估

如果不為 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' ]