經(jīng)常遇到以下情況:
檢查Map 中的值是否存在,如果不存在則創(chuàng)建。最后返回值。如下:
// ...
val map = mutableMapOf<String, List<String>>()
var list = map.get(key)
if (list == null) {
list = arrayListOf()
map[key] = list
}
// ...
如上所示,需要從 map中取出key對應(yīng)的 list 進(jìn)行后續(xù)處理。如果不存在,則創(chuàng)建一個新的 list 實例并將其添加到 map 中。
Kotlin 標(biāo)準(zhǔn)庫中的getOrPut方法實現(xiàn)了對這種情況的處理:
val list = map.getOrPut(key) { arrayListOf() }