而在 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] }
沒有留言:
張貼留言