2012-03-09 2 views
5

У меня есть этот код. Метод возвращает кортеж (User, Acl, Tree). Вместо доступа к данным с помощью _._1, _._2 и т. Д. Я использую совпадение. Есть ли более простой (лучший) способ, чем то, что я делаю? БлагодаряЛучший способ получить доступ к кортежу (кроме соответствия)

User.findUserJoinAclTree(3).map { 

     _ match { 

      case(user, acl, tree) => 

       Logger.info(user.email) 
       Logger.info(acl.id) 
       Logger.info(tree.name) 

     }     

    } 

ответ

9

Ваше выражение может быть немного упрощен:

User.findUserJoinAclTree(3) map { 
    case (user,_,_) => Logger.info(user.email) 
}     

Во-первых, вам не нужно, чтобы соответствовать аргументы, вы можете напрямую передавать частичную функцию для отображения, то вы можете использовать подстановочные (_) для элементов кортежей вам не нужно

5

в данном конкретном случае,

for ((user,_,_) <- User.findUserJoinAclTree(3)) yield Logger.info(user.email) 
Смежные вопросы