10

I know how to define a method with variable length argument:

  case class taxonomy(vocabularies:(String,Set[String])*)

and client code is very clean:

  val terms=taxonomy("topics"->Set("economic","politic")
                   ,"tag"->Set("Libya","evolution")
                   )

but I want to Know how can I use this case class when I have a variable (instead of a Sequence of variable) like this:

val notFormattedTerms = Map("topics"->Set("economic","politic")
       ,"tag"->Set("Libya","evolution"))

1 Answer 1

24
taxonomy(notFormattedTerms.toSeq:_*)

With : _* you virtually transform a sequence argument so that it looks as if a several arguments had been passed to the variable length method. This transformation, however, only works for (ordered?) simple sequence types and, as in this case, not for a Map. Therefore, one will have to use an explicit toSeq before.

Sign up to request clarification or add additional context in comments.

2 Comments

I have yet to see why these conversions are not done implicitly (where applicable).
That would be rather confusing, I suppose.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.