Вы можете использовать сопоставление с шаблоном с case
, чтобы сделать именование параметров более явным:
(for { user <- users; role <- user.roles } yield (role, user)) groupBy
{ case (role, _) => role } mapValues
{ roleUser => roleUser map { case (_, user) => user} }
Это не намного длиннее и немного понятнее, особенно если разбить на несколько строк.Выше _
используется только для обозначения «все равно», но вы также можете назвать все, чтобы избежать _
в целом:
(for { user <- users; role <- user.roles } yield (role, user)) groupBy
{ case (role, user) => role } mapValues
{ roleUser => roleUser map { case (role, user) => user} }