集合和對映布林值評估
如果不為 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' ]