而在 Groovy 的領域,則可以使用 inject() method; HA.KI blog 中先展現了 inject() 在數值加總的應用外,又示範將 List 物件轉為 Map 的技巧:
def persons = [
new Person(username:'mrhaki', email: 'email@host.com'),
new Person(username:'hubert', email: 'other@host.com')
]
def map = persons.inject([:]) { result, person ->
result[person.username] = person.email
/*return*/ result
}
在 result 的增設上, 可以使用下列的技巧:
result << [(person.username): person.email]或
result += [(person.username): person.email]如此, 連最後一行的 result return 都可以省了:
def map = persons.inject([:]) { result, person ->
result << [(person.username): person.email]
}
