Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Scala: Can I convert an Option to varargs?

I have an Option:

val myOption: Option[Int] = fooBar()

And a method that takes a varargs param:

def myMethod(a: String, b: Int*) = {...}

Is there any way to pass the option to the method as a varargs param? i.e. if the option is Some(3) then pass 3, and if it is None then pass nothing.

Experimenting with the answer to scala: How to pass an expanded list as varargs into a method? I tried explicitly typing the argument:

myMethod("xyz", myOption: _*)

but the compiler complains that it requires a Seq[Int]. It seems that Option does not implement Seq and there is no predef implicit conversion.

Given that the compiler wants a Seq, I can of course pass myOption.toList: _*, but is there a nicer way?

like image 592
Chris B Avatar asked Nov 30 '11 03:11

Chris B


1 Answers

myMethod("xyz", myOption.toSeq: _*)
like image 60
Daniel C. Sobral Avatar answered Nov 11 '22 09:11

Daniel C. Sobral