Scala: параллельное назначение кортежей - PullRequest
11 голосов
/ 05 февраля 2010

Возможно ли параллельно назначать членов кортежа в Scala. если нет, то есть ли другой метод для достижения чего-то подобного?

val players = List(
    new Player("Django Reinhardt", 42), 
    new Player("Sol Hoopii", 57),
    new Player("Marc Ribot", 64)
)

val winners, losers = players.partition(p => p.score > 50)

// winners = List(Player name:Sol Hoopii score: 57, Player name:Marc Ribot score: 64)
// losers = List(Player name:Django Reinhardt score: 42)

1 Ответ

20 голосов
/ 05 февраля 2010
val winners, losers = players.partition(p => p.score > 50)

Назначает кортеж (список, список) двум переменным. Если вы хотите распаковать кортеж, вы должны использовать

val (winners, losers) = players.partition(p => p.score > 50)

Что делает именно то, что вы хотите. : -)

...