我有一个 Option
:
val myOption: Option[Int] = fooBar()
以及采用可变参数参数的方法:
def myMethod(a: String, b: Int*) = {...}
有没有办法将选项作为可变参数参数传递给方法?即如果选项是
Some(3)
然后通过3,如果是None
然后什么都不通过。实验答案
scala: How to pass an expanded list as varargs into a method?我尝试明确输入参数:
myMethod("xyz", myOption: _*)
但是编译器提示它需要一个
Seq[Int]
.看来Option
不实现 Seq
并且没有 predef 隐式转换。鉴于编译器想要一个
Seq
,我当然可以通过myOption.toList: _*
,但有更好的方法吗?
最佳答案
myMethod("xyz", myOption.toSeq: _*)
关于Scala:我可以将选项转换为可变参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8320638/