我有Option
:
val myOption: Option[Int] = fooBar()
采用varargs参数的方法:
def myMethod(a: String, b: Int*) = {...}
有没有办法将该选项作为varargs参数传递给方法?即如果选项为Some(3)
,则传递3,如果为None
,则传递任何内容。
尝试答案 scala: How to pass an expanded list as varargs into a method?我尝试明确输入参数:
myMethod("xyz", myOption: _*)
但编译器抱怨它需要Seq[Int]
。似乎Option
没有实现Seq
,并且没有预先隐式转换。
鉴于编译器需要Seq
,我当然可以通过myOption.toList: _*
,但是有更好的方法吗?
答案 0 :(得分:5)
myMethod("xyz", myOption.toSeq: _*)